1. 程式人生 > 其它 >P7518 [省選聯考 2021 A/B 卷] 寶石(暫無資料)(口胡)

P7518 [省選聯考 2021 A/B 卷] 寶石(暫無資料)(口胡)

常量

目錄

相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。 常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。

const pi = 3.1415
const e = 2.7182

聲明瞭pie這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。

多個常量也可以一起宣告:

const (
    pi = 3.1415
    e = 2.7182
)

const同時宣告多個常量時,如果省略了值則表示和上面一行的值相同。 例如:

const (
    n1 = 100
    n2
    n3
)

上面示例中,常量n1n2n3的值都是100。

常量宣告格式

const (關鍵字) 常量名 =常量值   賦值一次,不允許修改
//資料庫,redis連線
//const NAME  = "randy"
const NAME  string = "randy"
const sex  = true 
// 有型別常量
const typedhello string = "Hello World"

func main() {
	//fmt.Println(NAME)
	//fmt.Println(sex)
	sex=false
	
	// fmt.Println(a)
}

iota

iota是go語言的常量計數器,只能在常量的表示式中使用。

iotaconst關鍵字出現時將被重置為0。const中每新增一行常量宣告將使iota計數一次(iota可理解為const語句塊中的行索引)。 使用iota能簡化定義,在定義列舉時很有用。

舉個例子:

const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )

幾個常見的iota示例

使用_跳過某些值

const (
        n1 = iota //0
        n2        //1
        _
        n4        //3
    )

iota宣告中間插隊

const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
const n5 = iota //0


const (
    a = 111 // 第一個宣告的常量所在的行,此處雖然沒有iota,但iota的值被置為0
    b // b的表示式同上,所以為111,此處雖然沒有iota,但因為是新增一個常量宣告,所以iota的值加1
    c1 // c的表示式同上,所以為111,此處雖然沒有iota,但因為是新增一個常量宣告,所以iota的值加1
    d1 = iota // 此處的iota基於前面的基礎加1,所以d為3
    e1 = 333
    f1 // 同上為333
    g // 同上為333
)
fmt.Println(a,b,c1,d1,e1,f1,g) // 111 111 111 3 333 333 333

定義數量級 (這裡的<<表示左移操作,1<<10表示將1的二進位制表示向左移10位,也就是由1變成了10000000000,也就是十進位制的1024。同理2<<2表示將2的二進位制表示向左移2位,也就是由10變成了1000,也就是十進位制的8。)

const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 <<(10 * iota)
        PB = << (10 * iota)
    )

多個iota定義在一行

const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3 c 會與上一個值相同
        e, f                      //3,4 e 會與上一個值相同
    )
fmt.Println(aa,bb)
fmt.Println(c,d)
fmt.Println(e,f)

1 2
2 3
3 4

總結

  1. 程式執行期間常量值不允許修改
  2. 常量定義: const 關鍵字 常量名 型別 =常量值 賦值一次,不允許修改
  3. 定義常量不使用不會報錯
  4. iotaconst關鍵字出現時將被重置為0
在當下的階段,必將由程式設計師來主導,甚至比以往更甚。