一、文件名、关键字与标识符

1.1 文件名

1、go 的源文件已 .go 为后缀名
2、文件名已小写组成 如:simple.go
3、如多个部分组成可用"_" 分割
4、不要包含有空格等特殊字符

1.2 标识符的命名规则

标识符(包括常量、变量、类型、函数名、结构字段等等)

1、标识符的命名规则:已字母或_开头的字母数字或_的组合
2、_ 有其特殊意义,不可单独使用 无效的标识符:
1ab(以数字开头)
case(Go 语言的关键字)
a+b(运算符是不允许的)

1.3 关键字

  • 25个关键字或保留字(不可做标识符使用)
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
  • 36 个预定义标识符(数据类型时讲解)
append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

二、组成要素

2.1 实例

src/day2/example1/main.go

package main

import "fmt"

var (
num1 int
num2 int
)
func main(){
num1 = 2
num2 =3
/* 我是多行注释 */
fmt.Println(sum(num1,num2))
} // 求和函数
func sum(n1,n2 int)int{
return n1 + n2
}

2.2 解释

  • 定义包名
pakcage main
告知go编辑器 该文件属于main包,同一个文件下可以有多个文件,但包名必须一致(通常包名与文件夹名一致,已便查看)
  • 导入包
import "fmt"
告诉go 编辑器该文件需要使用fmt 包,包一旦导入必须使用,否则程序无法执行
  • 全局变量
var(
num1 int
unm2 int
)
告诉go 编辑器,声明了两个变量,变量在声明阶段就已经初始化值了,int类型的初始值是0
go的变量一旦声明就必须使用否则会报错,不过现在全局变量的声明后可以不使用也不会报错(go1.13),以前是会保错的好像
  • 程序入口
func main(){}
一个程序有且只有一个main函数,这是程序的入口
  • 函数
func sum(int,int)int{}

告诉go 编辑器,main包中定义了一个函数,需要传入两个int类型的变量,返回int 值
  • 调用函数
sum(num1,num2)
fmt.Println() 告诉go 编辑器调用了sum 函数和fmt包中的Println 函数

2.3 执行

go run src/day2/example1
5

2.4 注意

1、函数的语法错误
func sum(n1,n2 int)int
{ // 这样是错误的 { 不能单独放在一行
return n1 + n2
} 2、关于“;”
在大多数语言中,每一行的结尾都是需要已;结尾的,但是go 不需要,因为go编辑器在编译的过程中就已经默认的添加了.

go的语言结构的更多相关文章

  1. 漫谈C语言结构体struct、公用体union空间占用

    先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...

  2. 解析C语言结构体对齐(内存对齐问题)

    C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...

  3. 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

    [源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

  4. (转)PHP的语言结构和函数的区别

    相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...

  5. php入门 数据类型 运算符 语言结构语句 函数 类与面向对象

    php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...

  6. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  7. C语言结构体定义的几种方法

    什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...

  8. 对嵌入式开发C语言结构体的一点总结

    今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...

  9. C语言结构体变量私有化

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...

  10. 在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

随机推荐

  1. block要用copy修饰,还是用strong

    栈区与堆区 block本身是像对象一样可以retain,和release.但是,block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)上.他本身的作于域是属于创建时候的作用 ...

  2. Java中接口与接口和类之间的关系

    接口和接口之间的关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方 ...

  3. 中望CAD VBA检测文件是否存在

    Option Explicit Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "Path ...

  4. (Entity framework 应用篇)把权限判断封装在数据库访问层

    这里,我只是以一个例子,说一下简单权限控制,通过这个例子,大家可以设计庞大的权限管理层,把权限控制封装到数据库访问层,这样程序员就不用再写权限判断的代码了 首先,先看看我数据库DBContext的定义 ...

  5. MATLAB学习笔记之界面基本操作

    一.命令窗口 1.对于较长的命令,可以用...连接符将断开的命令连接 s=/+/+/4 ... +/+/ 注意: 连接符...与表达式之间要留一个空格: 对于单引号内的字符串必须在一行完全引起来. a ...

  6. 解决Webpack中提示syntax 'classProperties' isn't currently enabled的错误

    当我们使用了一些JavaScript的一些新特性的时候,但是有没有在webpack.config.js里面或者是.babelrc文件中配置相关插件,就可以解决了. error:Support for ...

  7. 破解js中的this指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  8. Codeforces Round #469 Div. 2题解

    A. Left-handers, Right-handers and Ambidexters time limit per test 1 second memory limit per test 25 ...

  9. 倍增/线段树维护树的直径 hdu5993/2016icpc青岛L

    题意: 给一棵树,每次询问删掉两条边,问剩下的三棵树的最大直径 点10W,询问10W,询问相互独立 Solution: 考虑线段树/倍增维护树的直径 考虑一个点集的区间 [l, r] 而我们知道了有 ...

  10. ansible common modules

    ##Some common modules[cloud modules] [clustering modules] [command modules]command - executes a comm ...