Go菜鳥筆記第三章 Go常量、枚舉、數(shù)學(xué)運算

      網(wǎng)友投稿 873 2022-05-28

      常量

      相對于變量,常量是恒定不變的值,比如:數(shù)學(xué)自然常數(shù)e,圓周率pi。常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點型和復(fù)數(shù))和字符串型。

      Go語言中定義常量的關(guān)鍵字跟c語言一樣const:

      const e = 2.718281 const pi = 3.1415926 const filename = "demo.txt"

      1

      2

      3

      也可以集中定義:

      const( e = 2.718281 pi = 3.1415926 )

      1

      2

      3

      4

      常量使用跟變量一樣:

      package main import "fmt" func main() { const( e = 2.718281 pi = 3.1415926 ) r := 2.0 area := pi * r * r fmt.Println("圓的面積 = ", area) fmt.Println("自然常數(shù)e = ", e) }

      Go菜鳥筆記:第三章 Go常量、枚舉、數(shù)學(xué)運算

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      枚舉

      const能夠用作枚舉:

      const ( Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 )

      1

      2

      3

      4

      5

      6

      7

      iota

      iota是一個特殊常量,可以認(rèn)為是一個可以被編譯器修改的常量,第一個 iota 等于0,后面的依次+1

      const ( _ = iota Monday Tuesday Wednesday Thursday Friday ) fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      結(jié)果:

      1 2 3 4 5

      1

      const ( i = 1 << iota j = 3 << iota k l ) fmt.Println("i = ", i) fmt.Println("j = ", j) fmt.Println("k = ", k) fmt.Println("l = ", l)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      i = 1, iota初始為0 --> 左移0位,不變 i = 1

      j = 3, iota變?yōu)?,左移1位,3的二進(jìn)制(011)–> 左移1位,變?yōu)?(二進(jìn)制110)

      k = 3, iota變?yōu)?,左移2位,011 --> 1100(也就是12)

      l = 3, iota變?yōu)?,左移3位,011 --> 11000(也就是24)

      i = 1 j = 6 k = 12 l = 24

      1

      2

      3

      4

      數(shù)學(xué)運算

      Go語言同樣支持簡單的數(shù)學(xué)四則運算:加、減、乘、除。為了測試,我們創(chuàng)建一個mathDemo文件夾,然后創(chuàng)建一個GO文件 main.go:

      package main import "fmt" func main() { // 變量聲明 var a, b int // 變量賦值 a = 20 b = 40 // 算數(shù)運算 // 加法 c := a + b fmt.Printf("%d + %d = %d \n", a, b, c) // 減法 d := a - b fmt.Printf("%d - %d = %d \n", a, b, d) // 乘法 e := float32(a) * float32(b) fmt.Printf("%d / %d = %.2f \n", a, b, e) // 除法 f := float32(a) / float32(b) fmt.Printf("%d / %d = %.2f \n", a, b, f) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      同樣,我們構(gòu)建并運行這個程序:

      cd mathDemo go build go run main.go

      1

      2

      3

      可以看到如下結(jié)果:

      20 + 40 = 60 20 - 40 = -20 20 / 40 = 800.00 20 / 40 = 0.50

      1

      2

      3

      4

      數(shù)學(xué)函數(shù)庫

      Go提供了大量的數(shù)學(xué)函數(shù)庫,創(chuàng)建一個文件夾 mathdemo,新建 main.go。寫下如下的代碼;

      package main import ( "fmt" "math" ) func main() { a := 2.4 b := 1.6 c := math.Pow(a, 2) fmt.Printf("%.2f^%d = %.2f \n", a, 2, c) c = math.Sin(a) fmt.Printf("Sin(%.2f) = %.2f \n", a, c) c = math.Cos(b) fmt.Printf("Cos(%.2f) = %.2f \n", b, c) c = math.Sqrt(a * b) fmt.Printf("Sqrt(%.2f*%.2f) = %.2f \n", a, b, c) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      運算結(jié)果:

      2.40^2 = 5.76 Sin(2.40) = 0.68 Cos(1.60) = -0.03 Sqrt(2.40*1.60) = 1.96

      1

      2

      3

      4

      自增和自減

      Go 提供了自增和自減的語法:

      ++ syntax for increment. a++ means a = a + 1 —- syntay for decrement. a—- means a = a - 1

      1

      2

      創(chuàng)建一個文件夾 incdec,然后創(chuàng)建 main.go

      package main import "fmt" func main() { var a = 4 fmt.Printf("a = %d \n", a) // 自增 a = a + 1 fmt.Printf("a + 1 = %d \n", a) a++ fmt.Printf("a ++ = %d \n", a) // 自減 a = a - 1 fmt.Printf("a - 1 = %d \n", a) a-- fmt.Printf("a -- = %d \n", a) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      輸出結(jié)果:

      a = 4 a + 1 = 5 a ++ = 6 a - 1 = 5 a -- = 4

      1

      2

      3

      4

      5

      獲得鍵盤輸入

      在fmt庫中,提供了一個從鍵盤獲得輸入的方法,Scanf()。

      為了演示示例,計算圓的面積。在這個例子中,我們需要輸入一個半徑的值。

      創(chuàng)建一個文件inputdemo,然后創(chuàng)建一個文件main.go,寫入如下代碼:

      package main import ( "fmt" "math" ) func main() { fmt.Println("圓面積計算") fmt.Print("輸入一個半徑值:") var radius float64 fmt.Scanf("%f", &radius) area := math.Pi * math.Pow(radius, 2) fmt.Printf("半徑為 %.2f 的圓面積 = %.2f", radius, area) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      結(jié)果

      圓面積計算 輸入一個半徑值:2 半徑為 2.00 的圓面積 = 12.57 Process finished with exit code 0

      1

      2

      3

      4

      Go

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:一分鐘了解云監(jiān)控服務(wù)
      下一篇:php四種文件加載語句
      相關(guān)文章
      久久水蜜桃亚洲AV无码精品| 亚洲AV无码乱码在线观看裸奔 | 在线综合亚洲中文精品| 久久亚洲中文字幕精品有坂深雪| 国产精品亚洲一区二区三区在线| 亚洲综合色区在线观看| 青青青亚洲精品国产| 人人狠狠综合久久亚洲| 亚洲av日韩av永久在线观看| 亚洲国产成人久久精品软件| 亚洲风情亚Aⅴ在线发布| 亚洲av永久无码一区二区三区| 伊人久久亚洲综合影院首页| 亚洲综合偷自成人网第页色| 国产成人精品日本亚洲专| 色在线亚洲视频www| 亚洲成A人片在线播放器| 亚洲 日韩 色 图网站| 亚洲人成77777在线观看网| 在线观看亚洲AV日韩AV| 亚洲国产欧美一区二区三区| 久久综合亚洲色hezyo| 亚洲成人高清在线| 亚洲午夜精品第一区二区8050| 亚洲视频人成在线播放| 亚洲自偷自偷在线制服 | 亚洲婷婷五月综合狠狠爱| 亚洲国产另类久久久精品小说| 亚洲国产精品成人精品无码区在线| 国产日韩亚洲大尺度高清| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品视频在线观看视频| 亚洲另类小说图片| 精品国产成人亚洲午夜福利| 亚洲AV综合色区无码一二三区| 婷婷综合缴情亚洲狠狠尤物| 国产亚洲精品激情都市| 亚洲成av人在线视| 亚洲视频日韩视频| 一区二区亚洲精品精华液| 国产精品亚洲а∨天堂2021 |