go语言快速入门:数据类型使用例(4)

上篇文章中介绍了18种基本数据类型以及8种复合数据类型,接下来简单使用例子来说明一下如何定义/初期化/使用。

基本数据类型

我们从18种基本数据类型中挑选几种有代表性的,然后使用go语言中常用的定义以及初期化的方式进行使用。

例子代码

[root@liumiaocn goprj]# cat basic-1.go
package main

import "fmt"

func main() {
        //bool var definition and init
        var flag bool = false
        fmt.Println("flag = ", flag)

        //int var
        var i, j, k int
        i = 1
        j = 2
        k = 3
        fmt.Printf("i=%d, j=%d, k=%d\n", i, j, k)

        //var rune and init
        var r1, r2, r3 rune = 4, 5, 6
        fmt.Printf("r1=%d r3=%d r3=%d\n", r1, r2, r3)

        //var float32 and init
        var (
                f1 float32 = 2.1
                f2 float32 = 3.4
        )
        fmt.Printf("f1=%f f2=%f\n", f1, f2)

        //var string and init
        var str1 string
        str1 = "liumiaocn"
        fmt.Println("hello, ", str1)

        //:=
        str2 := "hello"
        fmt.Printf("str2 = %s \n", str2)
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-1.go
flag =  false
i=1, j=2, k=3
r1=4 r3=5 r3=6
f1=2.100000 f2=3.400000
hello,  liumiaocn
str2 = hello
[root@liumiaocn goprj]#

指针类型

go语言中指针的基本概念和C语言的基本使用方式和思路相差不大。

例子代码

[root@liumiaocn goprj]# cat basic-pointer.go
package main

import "fmt"

func main() {
        var intPointer *int
        var i int = 100
        intPointer = &i

        fmt.Println("value of i = [%d] address is [%x] \n", i, &i)
        fmt.Println("value of intPointer = ", intPointer)
        fmt.Println("value of var pointed to = ", *intPointer)
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-pointer.go
value of i = [%d] address is [%x]
 100 0xc42000a2c0
value of intPointer =  0xc42000a2c0
value of var pointed to =  100
[root@liumiaocn goprj]#

数组

例子代码

[root@liumiaocn goprj]# cat basic-array.go
package main

import "fmt"

func main() {
        var intarr1 = [6]int{1, 2, 3, 4, 5, 6}
        fmt.Println("intarr1 = ", intarr1)

        var strarr1 = []string{"this", "is", "a", "test"}
        fmt.Println("strarr1 = ", strarr1)
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-array.go
intarr1 =  [1 2 3 4 5 6]
strarr1 =  [this is a test]
[root@liumiaocn goprj]#

构造体

例子代码

[root@liumiaocn goprj]# cat basic-struct.go
package main

import "fmt"

func main() {

        type person struct {
                id      int
                name    string
                country string
        }

        //def and init 1
        var liumiao person
        liumiao.id = 1001
        liumiao.name = "liumiao"
        liumiao.country = "China"

        fmt.Println("liumiao=", liumiao)

        //def and init 2
        michael := person{1002, "michael", "PRC"}
        fmt.Println("michael=", michael)

}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-struct.go
liumiao= {1001 liumiao China}
michael= {1002 michael PRC}
[root@liumiaocn goprj]#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值