【go入门(一)】变量与运算(230912)

【go入门(一)】变量与运算(230912)

1.go语言环境配置与安装

直接看这一篇文章

go环境安装

2.第一个go语言程序(默认使用goland)

创建一个mian.go文件

在这里插入图片描述

书写以下代码,并run,就可以得到hello world经典语句了。

package main  

import "fmt"

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

这里有一些知识点需要说明:

1.go语言默认运行入口是从main包下面的main函数开始执行的。

2.如果要通过命令行来运行go程序,有两种方式:

go run main.go XX.go XXX.go
go build main.go XX.go XXX.go# 这会生成一个可执行文件
./main

3.go语言基本数据类型

序号类型和描述
1布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
2数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
3字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
4派生类型: 包括:(a) 指针类型(Pointer)(b) 数组类型© 结构化类型(struct)(d) Channel 类型(e) 函数类型(f) 切片类型(g) 接口类型(interface)(h) Map 类型

4.go语言声明变量与常量

4.1变量的声明

**go语言申明变量有两种方式:**①强语言类型赋值方式(C风格)。②自动推断方式(弱语言赋值风格)

强类型定义语法:

var 变量名 类型 
var 变量名 类型  = 初值 

弱类型定义方式(自动推断方式):

变量名  :=(注意推断方式必须给定初值才能自动推断)

**※:**虽然go语言能够自动推断出变量类型,但是go语言变量类型一旦确定,不能再次更改该语言的变量类型(如整型不能变成字符型)

下面通过一个案例来演示变量的定义

package main

import "fmt"

func main() {
	// 1. 强类型赋值方式
	var int1 int
	var int2 int = 2
	var str1 string
	var flag bool
	var str string = "nihao"
	var f1 float64 = 1.1
	fmt.Println(int1) //0
	fmt.Println(int2) //2
	fmt.Println(str1) // ''
	fmt.Println(flag) //false
	fmt.Println(str)  // 'nihao'
	fmt.Println(f1)   //1.1

	// 2. 自动推断模式
	int3 := 3
	fmt.Println(int3) //3

	// 试探自动推断是否像python一样更改变量类型
	int3 = "3"
    /*
    # command-line-arguments
.\main.go:25:9: cannot use "3" (untyped string constant) as int value in assignment
    */
	
}

变量定义时强类型定义可以不用赋予初值,但是弱类型方式必须赋予初值,两种赋值方式都不能改变原有的变量类型

4.2 常量的定义

常量的定义只有一种,强类型声明方式,道理很简单,用强类型才知道你是赋予的常量而不是变量。

定义语法:

const 变量名 类型 =(肯定要给值,不然此常量毫无意义)

4.3 多变量同时定义、枚举和iota计数器

go语言可以像python一样一次给多个变量进行赋值,像这样:

//强类型定义
var var1 ,var2 [type](可以省略) = value1,value2,value3
//省略的话右边可以赋值不同的类型的变量
//自动推断
var1,var2 := val1,val2

同样的,常量也一次性定义多个。

const a,b,c,d = false,1,1.0,"hello"

同时,常量可作为枚举值

package main

import "fmt"

func main() {
	const (
		Zero = 0
		One  = 1
		Male = 2
	)
	fmt.Println(Zero)
	fmt.Println(One)
	fmt.Println(Male)
}
--console---
0
1
2

最后我们来说说iota自增器,若使用iota自增器来定义枚举量**,那么iota后的枚举量会自动加一,赋值其他常量值的则会依次原样进行传递,知道重新使用iota后才会继续进行递增,从iota不再增加的值开始继续自增**

package main

import "fmt"

func main() {
	const (
		a = iota //0
		b        //1
		c        //2
		d = "ha" //独立值,iota += 1
		e        //"ha"   iota += 1
		f = 100  //iota +=1
		g        //100  iota +=1
		h = iota //7,恢复计数
		i        //8
	)
	fmt.Println(a, b, c, d, e, f, g, h, i)
}

5.总结

go语言在变量赋值这一块可以做到和python一样的简洁,同时也保证了具有cjava等强类型语言的严谨性。这种能屈能伸的语言很值得学习。

1
h = iota //7,恢复计数
i //8
)
fmt.Println(a, b, c, d, e, f, g, h, i)
}


## 5.总结

go语言在变量赋值这一块可以做到和`python`一样的简洁,同时也保证了具有`c`、`java`等强类型语言的严谨性。这种能屈能伸的语言很值得学习。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值