开发asp网站需要用到什么服务器,中国建筑企业公司排名,深圳响应式网站,口碑好的vi设计公司一、输入Hello World
go语言中#xff0c;想要输出内容到控制台#xff0c;package必须是main#xff0c;包括方法名也必须是main#xff0c; go语言输出的语法是 fmt 库。
package mainimport fmtfunc main() {// go语言中 输出内容 使用的库是 fmt库fmt.Pr…一、输入Hello World
go语言中想要输出内容到控制台package必须是main包括方法名也必须是main go语言输出的语法是 fmt 库。
package mainimport fmtfunc main() {// go语言中 输出内容 使用的库是 fmt库fmt.Println(Hello world)
}二、变量的基本类型
Go语言的基本类型有
boolean布尔类型 true / falsestring 字符串类型数值型 int8有符号8位整型-128到127长度int16有符号16位整型-32768到32767长度int32有符号32位整型-2147483648到2147483647长度int64有符号64位整型-9223372036854775808到9223372036854775807长度uint8无符号8位整型0到255uint16无符号16位整型0到65535uint32无符号32位整型0到4294967295uint64无符号64位整型0到18446744073709551615 浮点型 float3232位浮点型数字float6464位浮点型数字 byte等同于 uint8rune等同于 int32
当一个变量被声明之后系统自动赋予它该类型的零值int 为 0float 为 0.0bool 为 falsestring 为空字符串指针为 nil 等。所有的内存在 Go 中都是经过初始化的。
三、定义变量
Go语言中可以不指定变量的类型变量的类型可以让编译器来自动决定类型。
1.函数内变量的定义
go语言中定义语法的格式是 var修饰变量的名称在类型的前面和java不同。
package mainimport fmt// go语言中 声明方法 使用 func
func main() {// 在 go语言中 声明 变量用 var// 名字在前面 类型在后面// 在 go语言中 如果声明了变量 没有给赋值的话 默认的值 就是 空串和0// 比如在 java中 如果不给值 那么就是 null go语言中 都是有默认值的// go语言中 如果定义了变量 不使用的话 会报错var name1 stringvar age1 intfmt.Println(当前人的名称是, name1, 当前人的年龄是, age1)// 定义变量 并且给变量 赋值var name stringvar age intname zhangsanage 18//重新赋值age 19// 直接声明变量 然后给 变量赋值var sex 1fmt.Println(当前人的名字叫 , name, 他的年龄是, age, 性别是, sex)// 第二种定义变量的格式var name2, age2, sex2, flage2 zhangsan, 18, 1, true//对变量 重新赋值name2 李四fmt.Println(第二种定义变量的名称是:, name2, 年龄是:, age2, 性别是:, sex2, 状态是:, flage2)// 第三种定义变量的格式name3 : wangwuage3 : 20//对变量重新赋值name3 赵六fmt.Println(第三种定义变量的名称是:, name3, 年龄是:, age3)//连续对变量进行定义name4, age4, sex4 : 李七, 21, 1fmt.Println(第四种定义变量的名称是:name4, age4, sex4)// ---------------------------------------}
2.全局变量的定义
package mainimport fmt// 定义全局变量 任何一个函数里面都能使用
// 第一种写法
var name5 libai
var age5 100// 第二种写法
var (name6 chengyaojinage6 100
)// go语言中 声明方法 使用 func
func main() {fmt.Println(name5, age5)fmt.Println(name6, age6)
}四、定义常量
常量一旦被定义不能被修改。
package mainimport fmtfunc main() {/**1.常量类型只能定义 bool、数值类型(整数,浮点数,复数)、字符串2.变量定义了不使用会报错,常量定义了可以不使用不报错3.常量定义的时候就指定值,不能修改*/// 显式定义常量值: 确定常量的类型const success1 int 200// 隐式定义常量const success2 200// 常量定义 第一种方式const (ERROR1 1ERROR2 2ERROR3 3)// 第二种方式const ERROR4 4const ERROR5 5// 第三种方式// 如果定义常量时 没有给常量定义值 那么这个常量的值 将会使用 上个常量的值const (ERROR6 6ERROR61ERROR7 7ERROR71)const (code1 successcode2 truecode3 1)fmt.Println(ERROR1, ERROR2, ERROR3)//常量 只能被初始化一次 再次初始化的话 编译报错//ERROR4 10fmt.Println(ERROR4, ERROR5)fmt.Println(ERROR6, ERROR61, ERROR7, ERROR71)
}4.1常量 iota 的使用
假如我们针对用户表中用户状态需要用一个枚举类来表示他的状态那么就go语言中如何定义枚举呢
package mainimport fmtfunc main() {/**1.iota是一个自增的数字类型2.如果中断了iota 那么必须 显式的恢复,后续会继续递增3.每次出现const的时候,iota的初始化都是 0*/// 在go语言中对状态进行枚举表示// 未使用:0// 正常: 1// 已封禁:2// 账号异常:3// 停用:4const (NOTUSE iotaNORMALPROHIBITEDABNORMALDEACTIVATE)const (state iotastate1state2 未使用state3state4 iota)// 假如我们的错误码 从 1000开始const (ERROR 1000 iotaERROR1ERROR2ERROR3ERROR4)fmt.Println(NOTUSE, NORMAL, PROHIBITED, ABNORMAL, DEACTIVATE)fmt.Println(state, state1, state2, state3, state4)fmt.Println(ERROR, ERROR1, ERROR2, ERROR3, ERROR4)
}
五、匿名变量
上面我们说过了在go中如果变量不被使用的话那么编译会报错。但是确实有些场景我们用不到这个变量。这个怎么处理 使用匿名变量来解决。
package mainimport fmt// 定义一个函数 返回两个返回值
// 当前函数 返回两个返回值 类型是 int 和 bool
func anonymous() (int, bool) {return 0, true
}func main() {//定义匿名变量 用 _ 来表示 匿名变量var _ int//将第一个返回值用 匿名变量来接口_, ok : anonymous()if ok {fmt.Println(方法返回的是true)}}
六、数据类型的转换
package mainimport (fmtstrconv strconv
)func main() {// 数据类型之间的转换var a int8 12var b uint8(a)// 将 float32 强制转成 int32 类型// 浮点类型转成int类型 后面的数字 肯定是会丢失的var f float32 3.14var c int32(f)//int 转成 float64var f1 float64(a)fmt.Println(b)fmt.Println(c)fmt.Println(f1)// int 转字符串name : 2000var nameString stringnameString strconv.Itoa(name)fmt.Println(将int类型转成字符串类型:, nameString)//字符串转 int类型var ageString string 19var age intage, err : strconv.Atoi(ageString)if err ! nil {fmt.Println(报错了)}// parseInt 是进制转换fmt.Println(将字符串类型转成int类型:, age)//将string转成boolvar stateBoolString truevar stateBool boolstateBool, err strconv.ParseBool(stateBoolString)if err ! nil {return}fmt.Println(将string转成bool类型:, stateBool)//将 bool转成 stringvar flage truevar flageString stringflageString strconv.FormatBool(flage)fmt.Println(将bool类型转成string类型:, flageString)//将string转成 floatfloatString : 3.14156var floatF float64//bitSize是转换的位数 你要转成float32 还是 float64floatF, err strconv.ParseFloat(floatString, 64)if err ! nil {return}fmt.Println(将string转成float64类型:, floatF)//将float转成stringfloatF2 : 3.141569var floatF2String stringfloatF2String strconv.FormatFloat(floatF2, f, -1, 64)fmt.Println(floatF2String)
}