在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
不想沦为芸芸众生的人只需做一件事,便是对自己不再散漫;他应当听从良知的呼唤:“成为你自己!” ---尼采 1、整型有符号整数类型:int8、int16、int32和int64 无符号整数类型:uint8、uint16、uint32和uint64 跟CPU平台相关的数据类型:有符号整数int和无符号整数uint 特殊的无符号整数类型:uintptr(同指针),在32位平台下4字节,在64位平台下8字节 1.1 类型表示 int、uint和uintptr是不同类型的兄弟类型,int和int32也不是相同的类型,编译器不会帮你自动做类型转换,需要强制类型转换。比如: var apples int32 = 1 var oranges int16 = 2 var compote int = apples + oranges //compile error 当编译时,会产生一个错误信息:
解决方法是将他们都显式转型为一个常见类型:
1.2 比较运算 两个不同类型的整数型不能直接比较,但各种类型的整型变量都可以直接与字面常量进行比较。 var i int32
var j int64
i, j = 1, 2
if i == j { //编译错误
fmt.Println("i and j are equal.")
}
if i == 1 || j == 2 { //编译通过
fmt.Println("i and j are equal.")
}
2、浮点数如何判断两个浮点数是否相等?浮点数不是一种精确地表达方式,所以像整型那样直接用 == 来判断两个浮点数是否相等是不可行的。应该采用下面的方法: package main
3、布尔类型布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为:如果运算符左边值已经可以确定整个布尔表达式的值,那么运算符右边的值将不再被求值,因此下面的表达式总是安全的:
其中s[0]操作如果应用于空字符串将会导致panic异常。 4、常量常量表达式值在编译时期计算,而不是在运行时期。 所有常量的运算都可以在编译期完成,这样可以减少运行时的工作,也方便其他编译优化。当操作数是常量时,一些运行时的错误也可以在编译时被发现,例如整数除零、字符串索引越界、任何导致无效浮点数的操作等。 4.1 iota常量生成器常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。 下面是来自time包的例子,它首先定义了一个Weekday命名类型,然后为一周的每天定义了一个常量,从周日0开始。在其它编程语言中,这种类型一般被称为枚举类型。 type Weekday int
const (
Sunday Weekday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
5、字符串在Go语言中,字符串也是一种基本类型。 字符串连接:x + y; "Hello" + "123",结果为"Hello123" 字符串长度:len(s)
|
请发表评论