1 Go语言结构
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。
起始的{不能单独成行(使用IDE为JetBrain的GoLand,Goland我使用的破解方法都不太好使,也可以直接在线编译运行,网站自行百度)
package main
import "fmt"
func main()
{ // 错误,{ 不能在单独的行上,应该写成func main(){
fmt.Println("Hello, World!")
}
2 Go语言基础语法与数据类型
2.1 基础语法
在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。以下为两个语句:
fmt.Println("Hello, World!")
fmt.Println("菜鸟教程:runoob.com")
标识符必须以字母或者下划线开头,不能以数字开头。
2.2 数据类型
Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:
1.bool型 var b bool = true
2.数字类型:int float32 float64 支持整型和浮点型 也支持复数,其中位运算采用补码。
3.字符串
4.派生类型
指针、数组、struct、Channel、函数、切片、接口类型、Map(与Python中的dict类似)
其余类型;uint8 uint16 uint32 uint64 int8 int16 int32 int64 float32 float64
complex64:32位实数与虚数 complex128:64位实数与虚数
byte:类似unit8 rune:类似int32
uintptr:无符号整型 用于存放一个指针
3 Go变量常量运算符
3.1 Go变量
Go与c或者Java相比较而言,最大的特点定义顺序基本是反的,定义变量时会将数据类型放在后面。
比如c或者Java中定义一个变量是int a,定义多个变量是int a, b, c;定义一个指向整型的指针是int* p。
而在Go中这些变量的定义基本上都反过来了,a int;a,b int;定义指针,var var_name *var-type, ip *int; fp *float。
数组定义:C++: int a[10];java: int[] arr = new int[10]; Go: a[10] int.
声明变量:var identifier type
1.指定变量类型,声明后若不赋值,则使用默认值
var v_name v_type
v_name = value
2.根据值自行判断变量类型
Var v_name = value
3.省略var(这种方式在Go中出现次数最多),类似于octave的赋值方法 注意 :=左侧(冒号后接等号)的变量不应该是已经声明过的,否则会导致编译错误。
v_name := value// 例如
var a int = 10
var b = 10
c := 10