【Go 语法】程序结构

#背景
Go 语言和其他的语言一样,庞大的程序都是由小的基本组件构建而来:

  • 变量:存储值
  • 表达式:通过 + - 等操作合并成大的
  • 基本类型:通过数组和结构体进行聚合
  • 表达式:通过 if 和 for 等控制语句来决定执行顺序
  • 语句:被组织成函数,用于隔离和复用
  • 函数:被组织成源文件和包

#名称
Go 语言有 25 个关键字,不可用作名称:

  • break、default、case、else、goto、switch、if、for、continue:用于流程控制
  • func:用于定义函数和方法
  • interface:用于定义接口
  • select:用于选择不同类型的通讯
  • defer:在函数退出之前执行
  • go:用于并行
  • map:用于声明 map 类型
  • struct:用于定义抽象数据类型
  • chan:用于 channel 通讯
  • package:用于定义包
  • const:用于定义常量
  • fallthrougth:在 switch 中每一个分支结束后可以使用,执行下一分支
  • range:用于读取 slice、map、channel 数据
  • type:用于声明自定义类型
  • import:用于导入包
  • return:用于函数返回
  • var:用于定义变量

Go 语言还有 三十几个内置的与声明的常量、类型和函数

  • 常量
  • ture, false :布尔值
  • iota:iota 在 const 关键字出现时被重置为 0,const 中每新增一行常量声明将 iota 计数一次
  • nil:表示某个变量为空
  • 类型
  • int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:整型
  • uintptr:指针
  • float32, float64:浮点型
  • complex128, complex64:复数型
  • bool:布尔型
  • byte, rune:字符型。byte 对应 UTF-8,rune 对应 unicode
  • string:字符串型
  • error:错误型
  • 函数
  • make:返回 Type 本身(只能应用于 slice, map, channel)
  • len:返回长度
  • cap:返回容量
  • new:返回指向 Type 的指针
  • append:把东西增加到 slice 里面,返回修改后的 slice
  • copy:赋值 slice,返回赋值的数目
  • close:关闭 channel
  • delete:从 map 中删除 key 对应的 value
  • complex
  • real:返回 complex 的虚部
  • imag:返回 complex 的实部
  • panic:停止常规的 goroutine
  • recover:允许程序定义 goroutine 的 panic 动作

Notice

  • 若一个实体在函数中声明,那它只局部有效
  • 若一个实体在函数外声明,那它将对包内的所有源文件可见
  • 其中,实体的第一个字母的大小决定其可行性是否跨包。若名称以大写字母开头,则它是可导出的,对包外是可见和可访问的。包本身总是以小写字母组成。
  • 当遇到有单词组合的名称时,Go 程序员采用驼峰式风格

#声明
声明给一个程序实体命名,并设定其部分或全部属性。有 4 个主要的声明:

  • 变量(var)
  • 常量(const)
  • 类型(type)
  • 函数(func)

Example:以一个实例分别介绍 4 个主要的声明。

// 每一个文件以 package 声明开头,表明文件属于哪个包
package main

// import 导入包
// 形式:
// import ( "包名 1"
// 			"包名 2"	
//           ...
//			)
import ("fmt"
		)

// 定义常量 boilingF
// 当定义不位于函数内,则为包级别的声明
// 常量定义方式: 
// const 常量名 = 常量值
const boilingF = 212.0

// 定义 main 函数
func main(){
	// 定义变量 f, c 
	// f,c 均是 main 函数的局部变量 
	var f, c float64
	f = boilingF
	c = fToc(f)
	PrintfBoilingPoint(f, c)
}

// 定义 fToc 函数
// 返回类型为 float64
// 输入参数为 float64 类型的 f
// 函数定义形式:
// 		func 函数名(传参名称 传参类型) 返回类型 {
//			函数内容
//		}
func fToc(f float64) float64 {
	return (f - 32) * 5 / 9
}

// 定义printfBoilingPoint
// 无返回类型
// 输入参数为 float64 类型的 f 和 c
func PrintfBoilingPoint(f float64, c float64) {

	// 函数名的首字母为大写,表明此函数为包外可见函数
	// 由此可见,自定义函数 fToc 为包外不可见函数
	// PrintfBoilingPoint 为包外可见函数
	// 调用包外函数的格式:
	// 			包名.函数名(参数列表)
	fmt.Printf("boling point = %g °F or %g °C\r\n", f, c)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值