Linux - 批量執行sudo命令指令碼
阿新 • • 發佈:2021-06-10
變數
// 變數 package main func main() { //1 定義變數的第一種方式:全定義 //var關鍵字 變數名 變數型別 = 變數值 //var age int =10 //在go中,變數定義了就必須使用,如果不使用就報錯 //fmt.Println(age) //2 定義變數的第二種方式:型別推導(型別不需要寫了) //var age =10 //age=100 //var name ="lqz" //fmt.Println(age) //列印並換行 //fmt.Print(name) //列印不換行 //fmt.Printf("%T\n",age) //檢視變數型別 //fmt.Printf("%T",name) //fmt.Printf("%p",&name) //3 定義變數的第三種方式:簡略宣告(型別和var關鍵字都不寫)這種用的多,冒號和等號是一家 //a:=10 ////var a int =100 //重複定義 ////var a =99 //重複定義 //a := 99 //重複定義 //a=99 //fmt.Println(a) //4 其他變形方式 //4.1 只定義不賦值 //var age int //定義變數 //如果是隻定義,不賦值,只能用這種//var age //只定義,不賦值,不行 //4.2 宣告多個變數 //var width, height int = 100, 50 // 宣告多個變數 //var width,height =100,50 // 宣告多個變數 //var width,height =100,"lqz" // 宣告多個變數 //width,height :=100,";qz" // 宣告多個變數 //4.3 宣告多個變數,並賦初值 //var ( // name = "naveen" // age int = 29 // height int//) //fmt.Println(name,age,height) //4.4 小坑 //var a int =10 ////var b =99 //b,a:=99,100 //這個不報錯,我們覺得是重複定義,冒號左側,只要有一個沒有定義過的變數,就可以 //fmt.Println(b) //fmt.Print(a) /* 總結: 1 變數型別在定義階段就確定了,一旦確定,不允許改變 2 變數不可以重複定義 3 變數要先定義再使用 */ }
變數定義規範
/* 變數命名規範 -變數命令建議用駝峰,(大小寫有特殊意義) -go檔案命名建議用 下劃線 - 一個名字必須以一個字母(Unicode字母)或下劃線開頭,後面可以跟任意數量的字母、數字或下劃線 -大寫字母和小寫字母是不同的:Name和name是兩個不同的變數 -關鍵字和保留字都不建議用作變數名 */ /* 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語言中有37個保留字,主要對應內建的常量、型別和函式 內建常量: 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 */
型別
/* 基礎資料型別 數字: 有符號整形 -int:在32位機器是int32,在64位機器是int64 -int8:表示整數範圍是:8個位元位,8個bit是1byte ,負數和0, 2的7次方-1 的範圍 -int16 2的15次方減一 -int32 -int64 無符號整型 -uint8 2的8次方減一 定義一個人的年齡 -uint16 -uint32 -uint64 浮點型(小數),表示小數點後長度多少位 -float32 -float64 複數 -complex64 -complex128 byte:是int8的別名 單引號包裹 rune:是int32的別名 單引號包裹 字串 雙引號包裹 反引號包裹 ` ` 布林 bool true 和 false 資料型別預設值: 數字型別是0 字串型別是 空字串 布林型別 false */ /* byte:int8 short :int16 int:int32 long:int64 float:float32 double:float64 */
常量
package main //常量 func main() { //常量的定義,第一種 //const 變數名 變數型別 = 變數值 //const age int8 = 99 ////修改就報錯 //age=199 //fmt.Println(age) //第二種方式型別推導 //const age = 99 //age=88 //fmt.Println(age) //其他定義方式 //const name,age = "zhangsan",99 //const ( // name string ="lqz" // age =99 //) //const ( // s1 =iota // s2 =iota // s3 // s4 =99 // s5 =iota //) //fmt.Println(s1) 0 //fmt.Println(s2) 1 //fmt.Println(s3) 2 //fmt.Println(s4) 99 //fmt.Println(s5) 4 } //const 關鍵字定義,不允許改變
變數作用域範圍
package main import "fmt" //在同一個包下,函式名不能重名 //var a int //全域性變數,全域性有效,只要改了,就是改了 //func main() { // fmt.Println(a) //0 // a=19 // fmt.Println(a) //19 // test1() //99 // fmt.Println(a) //99 //} // //func test1() { // a=99 // fmt.Println(a) // //} //變數的作用域範圍 var a int //全域性變數,全域性有效,只要改了,就是改了 func main() { var a int fmt.Println(a) //0 a=19 fmt.Println(a) //19 test1() // 0 fmt.Println(a) //19 } func test1() { fmt.Println(a) }