ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Golang基础语法

2022-08-10 21:02:14  阅读:248  来源: 互联网

标签:语法 定义 int fmt 基础 元组 Golang func Println


 

Golang基础语法

通过以下指令查看Go的工作目录

go env GOPATH

Hello,World!

package main // 必须

// 导入其他包裹
import (
    "fmt"	// 输入输出
)

// 主函数
fun main() { 
    fmt.Println("Hello, Wolrd!")
}

定义变量

定义的变量必须被使用,否则将会报错

var a int 		// 定义整型, 默认值为0
var b string 	// 定义字符串,默认为空字符串

// 其他定义方法
a := x
b := "hi"

逻辑判断

if a > 1  {
	fmt.Println("bigger than 1")
} else if a < 0 {
	fmt.Println("less than 0")
} else {
	fmt.Println("something else")
}

if a > 1 && a < 10 {
	fmt.Println("Right")
}

元组

元组(Tuple) 不是 数组(Array)

定义元组

元组长度不可变

//定义元组
var a [3] int

a := [3]int{1,2,3}

// 修改元组中元素的值
a[1] = 9


切片

切片的长度可变

a := []int{1,2,3}
a = append(a,10) // 结尾添加值为10的变量

原理:切片创建一个新的长度翻倍的元组,将旧元组的值拷贝到新元组中,并添加新值,释放旧元组所占内存。

映射

类似于词典

//初始化映射
numbers := make(map[string]int)

//映射不固定大小
numbers["one"] = 1
numbers["two"] = 2

//删除关键词
delete(numbers, "one")

循环判断

go 语言中没有while循环

for i := 0; i < 5; i++ {
	fmt.Println(i)
} 

但可以通过for循环间接实现

i := 0
for ; i<5; {
	fmt.println(i)
	i++
}

// 无限循环
for {
    fmt.println(i)
    i++
}

for循环遍历元组、映射

a := []int{1,2,3,4,5}
for k, v := range a {
	fmt.Println(k, v)
}

for k, v := range numbers {
	fmt.Println(k, v)
}

定义函数

定义

func add(x int, y int) int {
	return x + y
}

可以不返回值,也可以返回多个值

func do_math(x int, y int) (int,int) {
	return x+y, x*y
}

还可以返回一个函数(闭包)

......

指针

n := 0
add(&n)
fmt.Println(n)

func add(n *int) {
	*n = *n + 1
}

自定义数据类型

go语言并非完全的面向对象语言,没有类

// 定义结构体
type cat struct {
    name string
    age int
}

func main() {
    cat1 := cat{name: "kitty", age: 3}
    cat1.age=4
    fmt.Println(cat1)
}

可以给自定义类型创建方法

type MyFloat float64

func (n MyFloat) show() {
	fmt.Println(n)
}

func main() {
    var a MyFloat = 1.5
    a.show()
}
//同样可以使用指针

本文参考:【硬货】新时代最流行的编程语言?10分钟学会Golang基础

 

标签:语法,定义,int,fmt,基础,元组,Golang,func,Println
来源: https://www.cnblogs.com/Piako-code/p/16573857.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有