ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

【Go语言基础】基本语法

【Go语言基础】基本语法

文章目录

    • 一、 程序基本结构
    • 二. 词法标记(Lexical Tokens)(编译器解析单元)
    • 三、 标识符规则(变量命名规则)
    • 四、注释与行分隔符
    • 五、关键字与预定义标识符
    • 六、 代码示例解析

以下是基于文档的Go语言基础语法总结,结合词法标记、标识符规则和代码结构:

一、 程序基本结构

Go程序由以下部分组成(按顺序):

packagemain// 必须的包声明(main包是可执行程序入口)import"fmt"// 导入外部包constPI=3.14// 常量定义varname="fly"// 全局变量typenewTypeint// 类型声明typestudentstruct{}// 结构体typereaderinterface{}// 接口funcmain(){...}// 程序入口函数(必须)

二. 词法标记(Lexical Tokens)(编译器解析单元)

编译器将代码解析为最小的词法单元,例如:

funcmain(){fmt.Println("hello")}// 对应的词法标记:// func, main, (, {, fmt, ., Println, (, "hello", ), }, )

常见词法类型:

  • 关键字(如func,if,for)
  • 标识符(变量名、函数名)
  • 操作符(+,=,:=)
  • 分隔符((,{,;)
  • 字面量("hello",123)
  • 特殊标记(EOF,COMMENT,ILLEGAL)

三、 标识符规则(变量命名规则)

标识符用于命名变量、类型等,必须遵循:

  1. 首字符:必须是字母(含Unicode)或下划线_
  2. 后续字符:可以是字母、数字或下划线
  3. 不能是关键字(如for,if,var)
  4. 区分大小写(Name和name是不同标识符)

合法示例:

username,_temp,中文,user1,MMXXX

非法示例:

1user// 数字开头for// 关键字m*m// 包含非法字符中 午// 包含空格

四、注释与行分隔符

  • 行注释:// 这是行注释
  • 块注释:/* 这是块注释 */
  • 行分隔符:Go自动在换行处添加;,但同一行写多条语句时需手动添加:
    fmt.Println("a");fmt.Println("b")// 不推荐,go fmt会自动拆分

五、关键字与预定义标识符

Go语言有25个关键字,不能用作标识符:

breakcasechanconstcontinuedefaultdeferelsefallthroughforfuncgogotoifimportinterfacemappackagerangereturnselectstructswitchtypevar

预定义标识符(建议避免使用):

true,false,nil,iotaint,int8,int16,int32,int64uint,uint8,uint16,uint32,uint64,uintptrfloat32,float64,complex128,complex64bool,byte,rune,string,errormake,len,cap,new,append,copy,close,deletecomplex,real,imag,panic,recover

六、 代码示例解析

packagemain// 包声明(必需)import"fmt"// 导入fmt包constPI=3.14// 常量(不可修改)varname="fly"// 全局变量// 自定义类型typeCelsiusfloat64typePersonstruct{NamestringAgeint}// 函数定义funcmain(){// 短变量声明(自动类型推断)message:="Hello, Go!"// 条件语句(无需括号)iflen(message)>5{fmt.Println("Long message")}// 循环(只有for)fori:=0;i<3;i++{fmt.Println(i)}// 调用函数result:=add(1,2)fmt.Println(result)}// 带参数和返回值的函数funcadd(a,bint)int{returna+b}
返回列表