Go 数学运算

举报
宇宙之一粟 发表于 2022/01/15 01:31:16 2022/01/15
【摘要】 常量 相对于变量,常量是恒定不变的值,比如:数学自然常数e,圆周率pi。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 Go语言中定义常量的关键字跟c语言一样const: const e = 2.718281co...

常量

相对于变量,常量是恒定不变的值,比如:数学自然常数e,圆周率pi。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

Go语言中定义常量的关键字跟c语言一样const:

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

也可以集中定义:

const(        e = 2.718281        pi = 3.1415926    )
        

常量使用跟变量一样:

package mainimport "fmt"func main() {    const(        e = 2.718281        pi = 3.1415926    )    r := 2.0    area := pi * r * r    fmt.Println("圆的面积 = ", area)    fmt.Println("自然常数e = ", e)}
        

枚举

const能够用作枚举:

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

iota

iota是一个特殊常量,可以认为是一个可以被编译器修改的常量,第一个 iota 等于0,后面的依次+1

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

结果:

1 2 3 4 5
        

左移运算

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. i = 1, iota初始为0 --> 左移0位,不变 i = 1
  2. j = 3, iota变为1,左移1位,3的二进制(011)–> 左移1位,变为6(二进制110)
  3. k = 3, iota变为2,左移2位,011 --> 1100(也就是12)
  4. l = 3, iota变为3,左移3位,011 --> 11000(也就是24)
i =  1j =  6k =  12l =  24
        

数学运算

Go语言同样支持简单的数学四则运算:加、减、乘、除。为了测试,我们创建一个mathDemo文件夹,然后创建一个GO文件 main.go:

package mainimport "fmt"func main() {    // 变量声明    var a, b int    // 变量赋值    a = 20    b = 40    // 算数运算    // 加法    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)}
        

同样,我们构建并运行这个程序:

 cd mathDemo go build go run main.go
        

可以看到如下结果:

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

Go提供了大量的​​数学函数库​​,创建一个文件夹 mathdemo,新建 main.go。写下如下的代码;

package mainimport (    "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)}
        

运算结果:

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

自增和自减

Go 提供了自增和自减的语法:

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

创建一个文件夹 incdec,然后创建 main.go

package mainimport "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)}
        

输出结果:

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

获得键盘输入

fmt库中,提供了一个从键盘获得输入的方法,Scanf()。

为了演示示例,计算圆的面积。在这个例子中,我们需要输入一个半径的值。

创建一个文件inputdemo,然后创建一个文件main.go,写入如下代码:

package mainimport (    "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)}
        

结果

圆面积计算输入一个半径值:2半径为 2.00 的圆面积 = 12.57Process finished with exit code 0
        

Go 数学运算_go

文章来源: blog.csdn.net,作者:宇宙之一粟,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/yuzhou_1shu/article/details/122476947

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。