02-golang程序基本结构

命名规则

go语言中,函数名、变量名、常量名、方法名等所有的命名都遵循一个规则:一个名字必须以字母或下划线开头,后面可以跟任意数量的字母、下划线和数字(注意不要跟标点符号哦)。

go语言中关键字有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

go语言还有30多个预定义字,对应内建的数据类型、函数、常量。这种预定义字和关键字不一样,它本身具有一定的含义,但是go语言并没有禁止使用者用预定字来命名。一般情况,不要用预定义字做变量名、函数名等,避免造成语义混乱,甚至使用错误发生bug。

内建常量: true false iota nil 
内建类型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error 
内建函数: make len cap new append copy close delete complex real imag panic recover

变量

关键字var用来声明变量。go语言变量声明和其他语言有些不同,它将类型置于变量名后面。go语言声明变量的语法如下:

var 变量名 变量类型 = 表达式
var 变量名 变量类型
var 变量名 = 表达式

其中= 表达式变量类型是可以省略的。如果省略了变量类型,会根据表达式自动推导变量类型。比如var s = "hello",变量s会自动推导为string型。如果省略了= 表达式,那么会用零值来初始化变量。数值类型变量对应的零值为0,string类型变量对应的零值为空字符串,布尔类型对应的零值为false,引用类型(map,slice,channel)和接口对应的零值为nil,结构体和数组对应的零值为是每个字段或者元素都为零值。

一次声明多个变量

go语言支持一条语句中声明一组类型相同的变量,或者使用一组初始化表达式来声明一组变量。如果省略了类型,使用表达式来初始化,可以同时声明多个不同类型的变量。

var a, b int // a,b均为int型变量
var a, b int, c bool  // 这是错误的
var a, b, c = 1, 2, "helloworld" // int,int,bool
简洁的声明变量

go语言中提供一个语法糖:=来使声明更为简洁。使用:=可以省略var关键字,但是它要求程序必须手动地给变量赋值。:=也可以同时给多个不同类型地变量赋初始值。(注意::=只能用于局部变量,全局变量不可以使用)

str := "helloworld"
str, flag := "helloworld", true

常量

常量是在编译期就确定值的表达式,在程序运行中常量是不可变的。它主要用来存储一些程序运行时不会变的数据,比如Π。常量只有三个种类的数据类型,string、bool和数字类型。go语言中使用const关键字来声明常量,声明常量的语法与定义变量的语法一样。

const Π int = 3.14
const man = "男"

给常量赋值时不能使用自定义函数,因为常量的值在编译期就确定,而自定义函数在编译器是未知的,所以无法给常量赋值。而内建函数是可以的,比如len()。(什么len()就可以?我也不知道)

go语言中的包类似于其他语言的库或者模块,它多个go文件的集合。程序中可以通过导入包去调用包中的函数或者方法,而在包中可以通过函数名,类型名的大小写来控制外部包的访问权限。

go语言中通过package关键字来声明go文件所属的包(包声明语句必须在最前面),通过import关键字来导入外部包。

package dao

import "fmt"

main函数

main函数是go语言中必须有的函数,它是go程序的入口。

func main() {
	fmt.Println("helloworld")
}

golang程序基本结构示例

package main	// 必要

import "fmt"	// 导入程序中需要用到的外部包,非必要

func main() {	// 必要
    // 业务
	fmt.Println("helloworld")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值