004.golang 常量与运算符
发布时间:2020-12-16 19:18:39 所属栏目:大数据 来源:网络整理
导读:常量的定义 常量的值在编译时就已经确定 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数 package main import "fmt" const a int = 1 const b = "B" const ( c = "c" d = len (c) e = d * 2 ) const f,g,
常量的定义
package main
import "fmt"
const a int = 1
const b = "B"
const (
c = "c"
d = len(c)
e = d * 2
)
const f,g,h,i = 1,true,"h",len("love")
const (
j,k,l,m = 1,"a",float64(len(k)) * 100.123
)
func main() {
fmt.Println(a,b,c,d,e,f,i,j,m)
}
常量的初始化规则与枚举
package main
import "fmt"
const (
a = "a"
b
c
d
e = iota
f
g
)
const (
h = iota
i
j
)
func main() {
fmt.Println(a,j)
}
package main
import "fmt"
const ( _ = iota KB float64 = 1 << (iota * 10) MB GB TB PB EB ZB YB ) func main() { fmt.Println(KB) fmt.Println(MB) fmt.Println(GB) fmt.Println(TB) fmt.Println(PB) fmt.Println(EB) fmt.Println(ZB) fmt.Println(YB) }
运算符Go中的运算符均是从左至右结合优先级(从高到低)^ ! (一元运算符)
* / % << >> & &^
+ - | ^ (二元运算符)
== != < <= >= >
<- (专门用于channel)
&&
||
package main
import "fmt"
/* 6: 0110 11: 1011 --------- & 0010 只有都是1的时候,才是1 | 1111 只要有一个是1,就是1 ^ 1101 只有一个是1的时候,才是1 &^ 0100 第二个参数为1的,把第一个参数的改为0 */
func main() {
/* 正整数的补码是其二进制表示,与原码相同; 负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1 按位取反 0 0010 取补码 0 0010 按位取反 1 1101 这个也是补码, 减去1 1 1100 再取反, 1 0011 但符号位不变 得 -3 */
fmt.Println(^2)
fmt.Println(!true) //false
fmt.Println(1 << 10) //1024
fmt.Println(1 << 10 >> 10) //1024
fmt.Println(6 & 11) //0010
fmt.Println(6 | 11) //1111
fmt.Println(6 ^ 11) //1101
fmt.Println(6 &^ 11) //0100
}
指针Go虽然保留了指针,但与其它编程语言不同的是,在Go当中不
package main
import "fmt"
func main() {
a := 1
var p *int = &a
fmt.Println(p)
fmt.Println(*p)
}
递增递减语句在Go当中,++ 与 – 是作为语句而并不是作为表达式 a := 1
a++
a--
//这是不允许的,只能作为语句,表达式不可以 //b := a++ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |