A Tour of Go Numeric Constants

ghgyj · · 2609 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Numeric constants are high-precision values.

An untyped constant takes the type needed by its context.

Try printing needInt(Big) too.

 

package main 

import "fmt"

const (
    Big = 1 << 100
    Small = Big >> 99
)

func needInt(x int) int {
    return x*10 + 1
}

func needFloat(x float64) float64{
    return x * 0.1
}

func main() {
    fmt.Println(needInt(Small))
    fmt.Println(needFloat(Small))
    fmt.Println(needFloat(Big))
}

 

 

 

 

 

package main 

import "fmt"

const (
    Big = 1 << 100
    Small = Big >> 99
)

func needInt(x int) int {
    return x*10 + 1
}

func needFloat(x float64) float64{
    return x * 0.1
}

func main() {
    fmt.Println(Small);
    var intVariable int = 1
    //var float32Variable float32 = 1.2
    fmt.Println(needInt(Small))
    // constant 1267650600228229401496703205376 overflows int
    //fmt.Println(needInt(Big))
    fmt.Println(needFloat(Small))
    fmt.Println(needFloat(Big))

    //go语言对类型的要求是很严格的,所以你不能传递int到float中或者float到int
    fmt.Println(needInt(intVariable))
    //cannot use float32Variable (type float32) as type int in argument to needInt
    //fmt.Println(needInt(float32Variable))
    //cannot use intVariable (type int) as type float64 in argument to needFloat
    //fmt.Println(needFloat(intVariable))
    //cannot use float32Variable (type float32) as type float64 in argument to needFloat
    //fmt.Println(needFloat(float32Variable))

}

不过常量却相对宽容一些

    //constant 1267650600228229401496703205376 overflows int
    fmt.Println(Big);

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:ghgyj

查看原文:A Tour of Go Numeric Constants

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2609 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传