go中判断float64是否为int_Go 常量、枚举与控制语句

9a5e50c6c142b9ca8f29ae0f79145980.png

Go 常量、枚举与控制语句

常量

常量的定义方式与变量基本相同

const identifier [type] = value

常量也常用于定义枚举

const (mon =1
       tue 
       wed
       thr
       fri // 如无特殊声明的话则后面几个变量都会默认赋为1
)

而如果想要达到自增的效果,可以使用特殊常量:iota

iota 默认从0开始,当 const 关键字出现时被重置为0,在 const 中,每多声明一行常量,都会令 iota 加一,

const (mon =iota+1
       tue 
       wed
       thr
       fri // 这时后面几个变量也默认赋为了iota+1,但因iota有从0自增的效果,故后面几           
           // 个常量的结果分别为2、3、4、5
)

循环语句

Go中的循环语句只有for一种

基础的for语句

for i<=3{
    fmt.Println(i)
    i=i+1
}

经典的 起始/条件/迭代(inital/condition/after) 型,注意中间用分号分割

for i=1;i<3;i++{
    fmt.Println(i)
}

Go中在for循环中的breakcintinue与C语言中用法以及作用相同,break用于跳出循环,continue用于跳过该语句以下的内容,直接执行下一次循环

没有判别条件的for循环即为无限循环,只能通过break或者return来跳出

for {
    i++
    fmt.Println(i)
    if i>100{
        break
    }
}

条件语句

if

Go语言中ifelse的用法与c语言中相同

但要注意Go语言中没有三目运算符(ternary if),无 ?: 运算

switch

switch 语句与c语言中也类似,只不过Go中的每个case后面不必再单独加break,Go中的每个case后都默认自带break效果,

switch 的多个case 会由上到下被逐一测试,直到匹配位置,若所有 case 均不成立则执行 default

如果要执行多个case,则可使用fallthrough ,在某个case 后放入fallthrough 语句,系统会在执行完这个case 之后,继续直接执行下一个 case 的内容,而不去判断下个case的条件是否成立,即一次执行两个case

switch i {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    case 3:
        fmt.Println("three")
    fallthrough
    case 4:
    fmt.Println("four ,or the result of fallthrough from case 3")
    default :
    fmt.Println("i is not 1,2,3or4")
    }

这段代码中,当 i=3 时,同时执行 case3 和 case4

i=4 时,只执行 case 4

switch 的另一重要用法是各个 case 的参数可以是格式,而不仅仅是值,因此 switch 可以用来判断格式,根据输入变量的不同格式来执行不同的参数,条件是此时的输入必须是interface 类型

例如以下是一个简单的类型判断程序,可以根据输入值不同的类型来进行不同的操作

type itf1 interface{} // 定义了interface类型itf1,interface类似于结构体概念,但能对应多种类型                      // 的实现,后面再详细学习
var i itf1=1.22       // 此时定义了itf1类的变量i,并赋值为1.22,这里的i可以赋值为任意数据类型
switch i.(type) {
    case int:
        fmt.Println("int")
    case bool:
        fmt.Println("bool")
    case string:
        fmt.Println("string")
    default:
        fmt.Println("don't know the type")  // 若i的类型在以上三者之外,如1.22为float32或                                              // float64型,则进入default
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值