go语言学习(二)

1.go语言基本数据类型

2.变量的定义

3.多重复制,匿名变量

4.常量的定义,使用

5.类型转化

6.条件结构,循环结构


一、go语言基本数据类型

1.整型


rune 类型是 Unicode 字符类型,和 int32 类型等价,通常用于表示一个 Unicode 码点。rune 和 int32 可以互换使用。

byte 是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是 一个小的整数。

其中常用的就是int。

2.浮点型

Go语言提供了两种精度的浮点数,float32和float64。它们的算术规范由IEEE754浮点数国际标准定义, 该浮点数规范被所有现代的CPU支持。

3.布尔型

一个布尔类型的值只有两种:true和false。if和for语句的条件部分都是布尔类型的值,并且==和<等比 较操作也会产生布尔型的值。

4.字符串

一个字符串是一个不可改变的字节序列。字符串可以包含任意的数据,包括byte值0,但是通常是用来包 含人类可读的文本。

5.此外还有枚举型,复数类型

二、变量的定义

1.go语言中定义变量语法与其他语言不同 var 变量名 类型 = 值

package main
 
import "fmt"
 
func main() {
    var i int = 5 //声明一个整型并赋值  var  变量名 类型 = 
    fmt.Println("i = ", i)
 
    var b bool = false //申明一个布尔型并赋值
    fmt.Println("b = ", b)
 
    var f float64 = 3.14 //申明一个浮点型并赋值
    fmt.Println("f = ", f)
 
    var s string = "2018年5月2日" //申明一个浮点型并赋值
    fmt.Println("s = ", s)
 
    var c byte = 'c' //申明一个字符型并赋值
    fmt.Println("c = ", c)
    fmt.Printf("c = %c \n", c) //使用fmt.Printf 格式化输出打印字母c
 
    //基本数据类型默认值
    var i_1 int
    fmt.Println("i_1 = ", i_1) //0
 
    var b_1 bool
    fmt.Println("b_1 = ", b_1) //false
 
    var f_1 float64
    fmt.Println("f_1 = ", f_1) //0
 
    var s_1 string
    fmt.Println("s_1 = ", s_1) //空字符串
 
    var c_1 byte
    fmt.Println("c_1 = ", c_1) //0
}

2.变量的其他赋值方式

package main
 
import "fmt"
 
func main() {
    //连续赋值
    var a, b, c, d int = 1, 2, 3, 4
    fmt.Printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d)
 
    //多重赋值
    var (
        a0 int
        f0 float64
        b0 bool
        s0 string
        c0 byte
    )
    fmt.Printf("a0 = %v\nf0 = %v\nb0 = %v\ns0 = %v\nc0 = %v\n", a0, f0, b0, s0, c0) //%v 可自动匹配类型
 
    // := 自动推到类型,声明变量的同时赋值
    x := 11
    y := 3.1415926
    z := "Hello Go"
 
    fmt.Printf("x = %v\ny = %v\nz = %v\n", x, y, z)
    fmt.Printf("x = %T\ny = %T\nz = %T\n", x, y, z) //%T 打印数据类型
}

三、类型转换

package main
 
import (
    "fmt"
    "strconv"
)
 
func main() {
 
    f := 3.14
    i := int(f)
    fmt.Println(i)
 
    b := true //定义一个布尔型变量b
    fmt.Printf("b = %v\n", b)
 
    //%d 匹配类型为整形,打印结果为b = %!d(bool=true)
    //    fmt.Printf("b = %d\n", b)
    //布尔类型与整型不能相互转换
    //    fmt.Printf("b = %d\n", int(b)) //cannot convert b (type bool) to type int
 
    s := "2018"
    //func Atoi(s string) (i int, err error)
    //使用_匿名变量,忽略第二个返回值
    x, _ := strconv.Atoi(s) //i声明为整型,使用strconv.Atoi函数将字符串转换为int
    fmt.Printf("x = %d\n", x)
 
    // ParseFloat 将字符串转换为浮点数
    // s:要转换的字符串
    // bitSize:指定浮点类型(32:float32、64:float64)
    // 如果 s 是合法的格式,而且接近一个浮点值,
    // 则返回浮点数的四舍五入值(依据 IEEE754 的四舍五入标准)
    // 如果 s 不是合法的格式,则返回“语法错误”
    // 如果转换结果超出 bitSize 范围,则返回“超出范围”
    //func ParseFloat(s string, bitSize int) (f float64, err error)
    f1, _ := strconv.ParseFloat("0.321646843164131647697", 64)
    fmt.Println("f1 = ", f1)
}

strconv  用法:https://studygolang.com/articles/5003

四、类型别名

package main
 
import "fmt"
 
func main() {
    type long int64
 
    var l long = 123          //就相当于 var l int64 = 123
    fmt.Printf("l = %T\n", l) //打印结果 l = main.long
 
}

给int64取了一个别名long,之后用long声明变量类型就相当于int64.

五、变量的输入

获取用户键盘输入数据,并赋值给变量

package main
 
import "fmt"
 
func main() {
 
    var a int //定义一个整数用来保存用户输入
    fmt.Println("请输入一个整数:")
    fmt.Scan(&a) //取a的地址将用户输入赋值给a
    fmt.Println("您输入的是:", a)
}

运行结果为:

六、if else 条件结构

package main
 
import "fmt"
 
func main() {
    i := 1
 
    if i == 1 {
        fmt.Println("i等于1")
    } else {
        fmt.Println("i不等于1")
    }
 
}

条件结构基本一样

七、循环结构

go语言中没有while关键字,所以go语言只存在for 循环。

package main
 
import "fmt"
 
func main() {
 
    //使用for循环10次,打印i的值
    for i := 0; i < 10; i++ {
        fmt.Println("Hello i = ", i)
    }
 
    var a int
    //
    for {
        fmt.Println("Hello a = ", a)
        a++
        if a == 10 {
            break //跳出循环,否则程序一直循环下去
        }
    }
}

两种for循环打印的结果相同

八、goto 的使用

package main
 
import "fmt"
 
func main() {
 
    fmt.Println("1111111111111111111111")
 
    goto End
 
    fmt.Println("2222222222222222222222")
 
End:
    fmt.Println("33333333333333333333333")
}

不使用goto的情况下,程序会1,2,3都打印,而使用goto后,程序会跳过goto之后的程序,执行用户定义的标签的地方,因此程序打印结果只有1和3。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值