標識符#
什麼是標識符#
== 答:給變量、方法等起的名字就是標識符 ==
標識符的定義規則#
1. 由 26 個英文字母大小寫,0-9, _ 組成
2. 數字不可以開頭
3. Golang 中嚴格區分大小寫
4. 不能包含空格
5. 下劃線 "_" 本身在 Go 中是一個特殊的標識符,稱為空標識符。可以代表任何其他的標識符,但是它對應的值會被忽略(比如:忽略某個返回值),所以僅能夠被作為佔位符使用,不能作為標識符使用
6. 不能以系統保留字作為標識符,比如 :brack , if 等
標識符的命名規則#
1. 包名,保持package的名字和目錄的名字保持一致,盡量採用有意義的包名,簡短,有意義,不要和標準庫衝突
2. 變量名,函數名,常量名,採用駝峰命名
3. 如果變量名、函數名、常量名首字母大寫,則可以被其他的包訪問;如果首字母小寫,則只能在本包內使用(注意:可以簡單的理解為,首字母大寫是公有的,首字母小寫是私有的)
關鍵字和預定義標識符#
關鍵字#
關鍵字是程序發明者規定有特殊含義的單詞,又叫保留字,go語言中一共有25個關鍵字
預定義標識符
預定義標識符一共36個,包含基礎數據類型和系統內嵌函數
運算符#
算數運算符#
package main
import "fmt"
func main() {
// +加號的運用
//1、取正
var n1 int = +8
fmt.Println(n1)
//2、相加操作
var n2 int = 6 + 3
fmt.Println(n2)
//3、字符串拼接
var n3 string = "a" + "b" + "c"
fmt.Println(n3)
// /除號的運用
fmt.Println(10 / 3) //兩個int類型運算結果為int類型
fmt.Println(10.0 / 3) //浮點類型參與運算,結果為浮點類型
// %取模(也叫餘數) 等價公式 a%b=a-a/b*b
fmt.Println(10 % 3) // 1
fmt.Println(10 % -3) // -1
fmt.Println(-10 % 3) // -1
fmt.Println(-10 % -3) // 1
// ++自增和--自減運用
var a int = 10
a++ //加1操作
fmt.Println(a)
a-- //減1操作
fmt.Println(a)
}
賦值運算符#
package main
import "fmt"
func main() {
var num1 int = 10
fmt.Println(num1)
var num2 int = (10+20)%3*8 - 14 // 等號右側運算完再賦值給左側
fmt.Println(num2)
var num3 int = 20
num3 += 20 //等價於 num3 = num3 + 20
fmt.Println(num3)
//練習 交換兩個數的值(類似於交換兩個杯子裡的水,需要再借助第三個空杯)
var a int = 6
var b int = 9
var x int
x = a //先把a的值放到x裡臨時托管,所以a處於空閒狀態就可以進行下一步操作
a = b //把b的值放到a裡面,a就接管了b的值,b現在處於空閒狀態
b = x //把x的值再放到b,x的值是a傳過來的,所以等價於b接管了a的值,就實現了a和b值的交換
}
關係運算符#
package main
import "fmt"
func main() {
fmt.Println(1 == 2) //判斷兩邊是否相等,如果相等返回true,如果不相等返回false
fmt.Println(1 != 2) //判斷兩邊是否不相等,如果不相等返回true,如果相等返回false(跟==是反的)
//其他關係運算符類比,就是符合條件返回true,不符合返回false
}
邏輯運算符#
package main
import "fmt"
func main() {
//與邏輯:&&(可把true理解成真,把false理解成假,)
//都為真才為真,只要有假就為假(一顆老鼠屎壞一鍋湯)
//特點:左邊為假,右邊不需要參與運算,結果為false
fmt.Println(true && true) //真真為真,結果為true
fmt.Println(true && false) //真假為假,結果為false
fmt.Println(false && true) //假真為假,結果為false
fmt.Println(false && false) //假假為假,結果為false
//或邏輯:||
//都為假才為假,只要有真就為真
//特點:左邊為真,右邊不需要參與運算,結果為true
fmt.Println(true && true) //真真為真,結果為true
fmt.Println(true && false) //真假為真,結果為true
fmt.Println(false && true) //假真為真,結果為true
fmt.Println(false && false) //假假為假,結果為false
//非邏輯:!(取相反結果)
fmt.Println(!true) //結果為false
fmt.Println(!false) //結果為true
}
位運算符#
僅簡單了解即可!
其他運算符#
&:返回變量的存儲地址
*:取指針變量對應的數值
參考指針部分:[[Go 語言入門學習筆記 / 第 4 章:複雜數據類型]]
運算符的優先級#
Go 語言有幾十種運算符,分割十個級別:
== 提高優先級可以加括號 ()==
獲取用戶終端輸入#
func main() {
//實現功能:鍵盤錄入學生年齡,姓名,成績,是否是VIP
//方式一:Scanlan
var age int
fmt.Println("請錄入學生的年齡:")
//傳入變量的地址的目的:在Scanln函數中,對地址中的值進行改變的時候,實際外面的age被影響了
fmt.Scanln(&age)
var name string
fmt.Println("請錄入學生的姓名:")
fmt.Scanln(&name)
var score float32
fmt.Println("請錄入學生的成績:")
fmt.Scanln(&score)
var isVIP bool
fmt.Println("請錄入學生是否為VIP:")
fmt.Scanln(&isVIP)
fmt.Printf("學生的姓名為:%v,年齡為:%v,成績為:%v,是否為VIP:%v", name, age, score, isVIP)
fmt.Println()
//方式二:Scanf
fmt.Println("請錄入學生的年齡, 姓名, 成績, 是否為VIP, 用空格隔開")
fmt.Scanf("%d %s %f %t", &age, &name, &score, &isVIP)
fmt.Printf("學生的姓名為:%v,年齡為:%v,成績為:%v,是否為VIP:%v", name, age, score, isVIP)
}