ITPub博客

首页 > 应用开发 > Go语言 > Go语言快速入门

Go语言快速入门

Go语言 作者:qwer1030274531 时间:2020-09-02 18:35:49 0 删除 编辑

1 Hello World!

package main
import "fmt"
func main() {
    fmt.Println("hello world")
}1234567

在这里插入图片描述

2 数据类型

数据类型简单速览

数据类型 基本数据类型 复合数据类型 值传递 引用传递
int整数 Y N Y N
float浮点 Y N Y N
string字符串 Y N Y N
bool布尔 Y N Y N
array数组 N Y Y N
slice切片 N Y N Y
map集合 N Y N Y
function函数 N Y Y N
pointer指针 N Y Y N
struct结构体 N Y Y N
interface接口 N Y Y N
channel管道 N Y Y N

2.1 基本数据类型

基本使用

package main
import "fmt"
func main() {
	var flg bool = true
	fmt.Printf("flg的数据类型是%T,值是%t\n",flg,flg)
	var num int = 100
	fmt.Printf("num的数据类型是%T,值是%d\n",num,num)
	var userName string = "zhangsan"
	fmt.Printf("userName的数据类型是%T,值是%s\n",userName,userName)
}123456789101112

在这里插入图片描述

2.1.1 bool布尔型

值传递验证,布尔型

package main
import "fmt"
func main() {
	var flg bool = true
	fmt.Println("before:",flg)
	change(flg)
	fmt.Println("after:",flg)
}
func change(flg bool) {
	flg = false
}1234567891011121314

在这里插入图片描述

2.1.2 int,float等数字型

咱这是快速入门,不搞那些什么int64,int32啥的,有无符号啥的,先横向学,别纵向钻牛角给自己挖坑,最后忘了自己要学什么。

值传递验证,以int型为例

package main
import "fmt"
func main() {
	var num int = 100
	fmt.Println("before:",num)
	change(num)
	fmt.Println("after:",num)
}
func change(num int) {
	num = 1000
}1234567891011121314

在这里插入图片描述

2.1.3 string字符串型 http://zzdxb.baikezh.com/

值传递验证,字符串
package main

import “fmt”

func main() {
var str string = “abc”
fmt.Println(“before:”,str)
change(str)
fmt.Println(“after:”,str)
}

func change(str string) {
str = “edf”
}
在这里插入图片描述

2.2 复合数据类型

2.2.1 array数组

a) 数组基本使用

package main
import "fmt"
func main() {
    // 数组的创建及赋值
    var addr = [3]string{"北京", "天津", "南京"}
    // 数组值的修改
    addr[1] = "苏州"
    // 获取数组的容量和长度
    fmt.Printf("数组的长度是%d,容量是%d\n",len(addr),cap(addr))
    // 数组的遍历
    for i := 0; i < len(addr); i++ {
        fmt.Println(addr[i])
    }
    // 数组的遍历 range方式
    for i, v := range addr {
        fmt.Printf("[%d]---[%s]\n",i,v)
    }
}1234567891011121314151617181920

在这里插入图片描述
b)值传递验证, 数组

package main
import "fmt"
func main() {
	var arr = [3]int{11,22,33}
	fmt.Println("before:",arr)
	change(arr)
	fmt.Println("after:",arr)
}
func change(arr [3]int) {
	arr[1] = 222
}1234567891011121314

在这里插入图片描述

2.2.2 slice切片

切片是动态数组类似java的ArrayList
基本使用

a) 切片是两倍扩容

package main
import "fmt"
func main() {
    // 切片的创建
    var addr []string
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    // 切片中添加数据
    addr = append(addr, "张三")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    addr = append(addr, "李四")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    addr = append(addr, "王五")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    addr = append(addr, "赵六")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    addr = append(addr, "阿七")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    fmt.Printf("addr的数据类型是%T",addr)
}123456789101112131415161718192021

在这里插入图片描述
b) 切片的遍历

package main
import "fmt"
func main() {
    // 切片的创建
    var addr []string
    // 切片中添加数据
    addr = append(addr, "张三")
    addr = append(addr, "李四")
    addr = append(addr, "王五")
    addr = append(addr, "赵六")
    addr = append(addr, "阿七")
    fmt.Printf("切片的长度是%d,容量是%d\n",len(addr),cap(addr))
    // 更改指定位置的数据
    addr[1] = "我是李四亲戚"
    // 切片遍历
    for i, v := range addr {
        fmt.Printf("[%d]->[%s]\n",i,v)
    }
}123456789101112131415161718192021

在这里插入图片描述
c) 切片数据的截取

package main
import "fmt"
func main() {
    // 创建切片
    var nums = []int{11,22,33,44,55}
    fmt.Println(nums)
    // 获取第二到尾部的所有数据
    fmt.Println("-------获取第二到尾部的所有数据-------")
    new_nums := nums[1:]
    fmt.Println(new_nums)
    fmt.Println(nums)
    // 获取从开头到倒数第二个元素的所有数据
    fmt.Println("-------获取从开头到倒数第二个元素的所有数据-------")
    new_nums = nums[:3]
    fmt.Println(new_nums)
    // 获取从第二个到第四个元素的所有数据(前闭后开)
    fmt.Println("-------获取从第二个到第四个元素的所有数据(前闭后开)-------")
    new_nums = nums[1:4]
    fmt.Println(new_nums)
}1234567891011121314151617181920212223

在这里插入图片描述d) 引用传递验证,切片

package main
import "fmt"
func main() {
	// 创建切片
	var nums = []int{11,22,33}
	fmt.Println("before:",nums)
	change(nums)
	fmt.Println("after:",nums)
}
func change(nums []int) {
	nums[1] = 222
}123456789101112131415

在这里插入图片描述

2.2.3 Map集合

2.2.4 function函数

2.2.5 pointer指针

2.2.6 struct结构体

值传递验证,结构体

package main
import "fmt"
func main() {
	stu := Student{name:"zhangsan", age:18}
	fmt.Println("before:",stu)
	change(stu)
	fmt.Println("after:",stu)
}
type Student struct {
	name string
	age int
}
func change(stu Student) {
	stu.age = 28
}12345678910111213141516171819

在这里插入图片描述

2.2.7 interface接口

2.2.8 channel管道


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30239065/viewspace-2716690/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Python的基本语法
请登录后发表评论 登录
全部评论

注册时间:2015-05-08

  • 博文量
    190
  • 访问量
    164166