Golang 菜鳥(niǎo)教程

Golang 控制語(yǔ)句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語(yǔ)言常量

正如名稱“ CONSTANTS”所暗示的意思是固定的,在編程語(yǔ)言中也是如此,即,一旦定義了常量的值,就無(wú)法再對(duì)其進(jìn)行修改。常量可以有任何基本數(shù)據(jù)類型,例如整數(shù)常量,浮點(diǎn)常量,字符常量或字符串文字。

如何聲明?
常量就像變量一樣聲明,但是使用const 關(guān)鍵字作為前綴來(lái)聲明具有特定類型的常量。不能使用:=語(yǔ)法聲明。

package main

import "fmt"

const PI = 3.14

func main() {
    const GFG = "nhooo"
    fmt.Println("Hello", GFG)
    fmt.Println("Happy", PI, "Day")
    const Correct= true
    fmt.Println("Go rules?", Correct)
}

輸出:

Hello nhooo
Happy 3.14 Day
Go rules? true

未類型化和類型化的數(shù)字常量:
類型化常量的工作方式就像不可變變量只能與相同類型互操作,而未類型化常量的工作方式就像文字常量可以與相似類型互操作。可以在Go中使用或不使用類型來(lái)聲明常量。下面的示例顯示已命名和未命名的類型化和未類型化的數(shù)字常量。

const untypedInteger          = 123
const untypedFloating typed   = 123.12

const typedInteger  int             = 123
const typedFloatingPoint   float64  = 123.12

以下是Go語(yǔ)言中的常量列表:

  • 數(shù)值常量(整數(shù)常量,浮點(diǎn)常量,復(fù)數(shù)常量)

  • 字符串字面量

  • 布爾常量

數(shù)值常量:
數(shù)值常量是高精度值。Go是一種靜態(tài)類型的語(yǔ)言,不允許混合數(shù)字類型的操作。您不能將float64添加到int,甚至不能將int32添加 int。雖然,寫(xiě)1e6 * time.Secondmath.Exp(1)甚至 1 <<('\ t'+ 2.0) 都是合法的。在Go中,常量與變量不同,其行為類似于常規(guī)數(shù)字。

數(shù)值常量可以是3種,即整數(shù),浮點(diǎn)數(shù),復(fù)數(shù)

整數(shù)常量:

  • 前綴指定基數(shù):十六進(jìn)制為0x或0X,八進(jìn)制為0,十進(jìn)制為0。

  • 整數(shù)字面量也可以具有后綴,分別是U(大寫(xiě))和L(大寫(xiě))的組合,分別表示無(wú)符號(hào)和長(zhǎng)整數(shù)。

  • 它可以是十進(jìn)制,八進(jìn)制或十六進(jìn)制常量

  • 一個(gè)int最多可以存儲(chǔ)64位整數(shù),有時(shí)更少。

以下是整數(shù)常量的一些示例

85         /* decimal */
0213       /* octal */
0x4b       /* 十六進(jìn)制 */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */
212         /* 合法 */
215u        /* 合法 */
0xFeeL      /* 合法 */
078         /* 非法的:8不是八進(jìn)制數(shù)字 */
032UU       /* 非法的:不能重復(fù)后綴 */

復(fù)數(shù)常量:
復(fù)數(shù)常量的行為與浮點(diǎn)常量非常相似。它是整數(shù)常數(shù)(或參數(shù))的有序?qū)?/em> 或 實(shí)數(shù)對(duì),并且該常數(shù)用逗號(hào)分隔,并且該對(duì)包含在括號(hào)之間。第一個(gè)常數(shù)是實(shí)部,第二個(gè)常數(shù)是虛部。復(fù)數(shù)常量COMPLEX * 8使用8個(gè)字節(jié)的存儲(chǔ)空間。

(0.0, 0.0) (-123.456E+30, 987.654E-29)

浮動(dòng)類型常量:

  • 浮點(diǎn)型常量具有一個(gè)整數(shù)部分,一個(gè)小數(shù)點(diǎn),一個(gè)小數(shù)部分和一個(gè)指數(shù)部分。

  • 可以用十進(jìn)制或指數(shù)形式表示浮點(diǎn)常量。

  • 雖然用十進(jìn)制形式表示,必須包含小數(shù)點(diǎn),指數(shù),或兩者兼而有之。

  • 并且在使用指數(shù)形式表示時(shí),必須包括整數(shù)部分,小數(shù)部分或兩者。

以下是浮點(diǎn)類型常量的示例:

3.14159       /* 合法 */
314159E-5L    /* 合法 */
510E          /* 非法:不完整的指數(shù) */
210f          /* 非法:沒(méi)有小數(shù)或指數(shù) */
.e55          /* 非法:缺少整數(shù)或分?jǐn)?shù) */

字符串文字

  • Go支持兩種類型的字符串文字,即“”(雙引號(hào)樣式)和“”(反引號(hào))。

  • 字符串可以級(jí)聯(lián)++ =運(yùn)算符。

  • 字符串包含與字符字面量相似的字符:純字符,轉(zhuǎn)義序列和通用字符,這是無(wú)類型的。

  • 字符串類型的零值是空白字符串,可以用或以文字表示。 " " ''

  • 通過(guò)使用==,!=和(用于比較相同類型)等運(yùn)算符,可比較字符串類型

語(yǔ)法

type _string struct {
    elements *byte // 底層字節(jié)
    len      int   //字節(jié)數(shù)
}

顯示字符串文字的示例:
"hello, nhooo"

"hello, \

nhooo"

"hello, " "geeks" "forgeeks"

在這里,以上所有三個(gè)語(yǔ)句都是相似的,即它們沒(méi)有任何特定的類型。
例:

package main

import "fmt"

func main() {
    const A= "GFG"
    var B = "nhooo"
    
    //拼接字符串
    var helloWorld = A+ " " + B
    helloWorld += "!"
    fmt.Println(helloWorld) 
    
    //比較字符串
    fmt.Println(A == "GFG")   
    fmt.Println(B < A) 
}

輸出:

GFG nhooo!
true
false

布爾常量:
布爾常量類似于字符串常量。它應(yīng)用與字符串常量相同的規(guī)則,不同之處僅在于它具有兩個(gè)未類型化的常量true和false。

package main

import "fmt"

const Pi = 3.14

func main() {
    const trueConst = true
    type myBool bool
    var defaultBool = trueConst       // 允許
    var customBool myBool = trueConst // 允許

    //  defaultBool = customBool // 不允許

    fmt.Println(defaultBool)
    fmt.Println(customBool)

}

輸出:

true
true
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清