天天看点

GO语言入门1:基本数据类型一、GO语法结构二、语言基础语法

一、GO语法结构

1.示例代码 package main                                          //包声明,必须出现在源文件第一行,指明文件处于哪个包   import "fmt"                                           //引入文件中需要的包文件   func main() {                                          //文件执行入口               //注释格式,同普通C格式    fmt.Println("Hello, World!")                //主要代码功能区 } ## 标识符 1)当标识符以  大写字母  开头,则可被外部包访问 2)当标识符以  小写字母  开头,则仅可被内部包访问 ## 注意事项 1)“{”不能单独放在一行,会出现运行时错误 2)文件名与包名并无直接关系,并非需要一致 3)同一个文件夹下的文件只能有一个包名,否则编译报错 4)代码模块每行可以不写分号,当同行有多句代码时需要用分号间隔   2.GO代码的执行 1)go run   文件名       //执行代码 2)go build 文件名      //编译生成二进制文件  

二、语言基础语法

1.标记:GO程序由多个标记组成,标记是代码中可以拆解的最小的有意义的单位,如:关键字、标识符、常量、字符串、符号等  如:fmt.Println("Hello, World!") 分解为:fmt   .    Println    (    "Hello, World!"     )   2.行分隔符 1)每行只有一个语句的时候可以不写任何分隔符 2)需同行写多句代码时,需用分号间隔   3.标识符规范 1)由字母、数字、下划线组成 2)第一个字符必须是字母或下划线 3)关键字不能作为标识符   4.字符串 1)字符串:是由双引号括起的一段字符序列 2)转义字符:换行符 \n、回车符 \r、tab键  \t、Unicode字符  \u、反斜杠  \\ 3)字符串拼接:使用“+”或“+=”可以完成字符串拼接 4)字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容;更深入地讲,字符串是字节的定长数组。   5.变量 (1)单变量声明 1)指定变量类型不赋值,则变量默认为零(没有初始化时系统默认的值) 如:var  name   type 各类型零值:数值类型:0、bool:false、字符串:“”、复杂数据类型:指针/数组/字典等:null 2)不指定变量类型,指定初值,根据初值自行判定数据类型 如:var  name  =  value 3)使用“:=”可以声明新的变量,而不用使用var,但对已有变量赋值时会报错 如正确声明: name1 :=  value   //name1从未被定义 如错误声明:var  name2 = value2;name2 := value3 ##注意 := 操作符只能用于函数体内部,不能用户全局变量的声明与赋值 (2)多变量声明 1)类型相同的多个变量声明 如: var  name1,name2,name3   type; name1,name2,name3=value1,value2,value3 2)类型不同的多个变量声明 如:var(name1  type1;name2  type2……) (3)值类型和引用类型 1)基本数据类型均属于值类型:int、float、bool、string,直接指向内存在内存中的值 a. 可以通过print直接输出变量值:fmt.Println(i) b. 可以通过&获得变量地址:fmt.Println(&i) c. 将一个变量赋给另一个变量时,是对值进行了拷贝赋在了新的内存地址中 6.常量 (1)常量:在程序运行过程中不会被修改的量 如:const  name  [type]  =  value 显式类型定义:const  b  string  ="abc" 隐式类型定义:const  b = "abc" 1)常量枚举定义 const (     Unknown = 0     Female = 1     Male = 2 ) (2)iota:可以变化的特殊常量,系统自定义 iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。   测试代码

package main

import "fmt"

func main(){
	 fmt.Println("Hello, World!");
	 fmt.Println("Hello, World22!")
	 //转义字符相关
	 /*fmt.Print("\n")
	 fmt.Print("\r")
	 fmt.Print("\t")
	 fmt.Print("\u")
     fmt.Print("\\")
     */
     //验证省略var时必须声明全新的变量
     //var vname1, vname2, vname3 = "1", "2", "3" // 和 python 很像,不需要显示声明类型,自动推断
     
     //nvname1, nvname2, nvname3 := "1", "2", "3" // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误

     var i,j int;
     i = 1;
     j = i;
     fmt.Println(i);
     fmt.Println(j)
     fmt.Println(&i)
     fmt.Println(&j)
}
           

继续阅读