Go语言学习二:Go基础(变量、常量、数值类型、字符串、错误类型)

定义变量

使用var关键字是go语言最基本的定义变量方式,与C语言不通的是Go语言把变量放在变量名后面。
//定义一个"liuxinming"变量,类型为"type"的变量
var liuxinming type

//定义多个"type"类型变量
var name1,name2,name3 type

//初始化liuxinming的变量为"value"值,类型是"type"
var liuxinming type = value

//定义三个类型为"type"的变量,并且初始化
var name1,name2,name3 type = 1,2,3

//简化上面的语句
name1,name2,name3 := 1,2,3

说明:

":="这个符号直接取代了var 和 type,这种形式叫做简短声明,不过它有一个限制,它只能用在函数内部(在函数外部使用则会无法编译通过)。
所以一般用var方式来定义全局变量。
"_" 是一个特殊的变量名,任何赋予它的值都会被丢弃
_,b = 1,2
//b被赋予2,并同时丢弃1

Go预约对于已声明但未使用的变量会在编译阶段报错,如下

package main

func main(){
    var i int//声明了i,但未使用
}

常量

在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值,在GO语言中,常量可以定义为数值、布尔值或字符串等类型
const constantname = value
//如果需要,可以明确指定常量类型
const Pi float32 = 3.1415926
const i = 10000
const MaxThread = 10
const prefix = "astaxie_"

Boolean类型

布尔值的类型bool,值为true或false,默认false.
//实例代码
var isActvie bool //全局变量声明
var enabled,disabled = true, false//忽略类型的声明
func test(){
   var available bool //一般声明
   valid := false //简短声明
   available = true //赋值操作
}

数值类型

整数类型:

1、有符合
2、无符号
Go语言同时支持int 和 uint,这两种类型的长度相同,但具体长度取决于不同编译器的实现。
Go预约也有直接定义好位数的类型:
rune (int32的别称)
int8
int16
int32
int64
byte (uint8的别称)
uint8
unit16
uint32
uint64
注意:这些类型的变量之间不允许互相赋值或操作
//错误代码
var a int8
var b int32
c := a+ b

浮点数的类型:

float32 
float64(默认)
Go语言还支持复数,它默认类型是complex128(64位实数+64位虚数)
                                                          complex64
复数的形式为RE+IMi,其中RE是实数部分,IM是虚数部分,而最后的i是虚数单位。
package main

import "fmt"

func main() {
	var c complex64 = 5 + 5i
	fmt.Printf("Value is : %v", c)
}


字符串

Go语言字符串都是采用UTF-8字符集编码。字符串是用一对双引号或反引号(``)括起来定义,它的类型是string。
//示例代码
func test(){
       userame,realname := "grassroots", "liuxinming" //简短声明
       username2 := "test"
       username2 = "test2" //常规赋值
}

在Go语言中字符串是不可变的,下面代码编译时会报错
var s string = "hello"
s[0] = 'c'
可以使用下面代码实现
/*
 * 字符串示例代码
 *@author lxm
 */
package main

import "fmt"

func main() {
	s := "hello"
	c := []byte(s)  //将字符串 s 转换为 []byte 类型
	s2 := string(c) //再转换回 string类型
	fmt.Printf("%s\n", s2)
}



 Go语言中可以使用“+” 操作符来链接两个字符串。
修改字符串参考如下代码:
/*
 *修改字符串
 *@author lxm
 */
package main

import "fmt"

func main() {
	s := "hello"
	s = "c" + s[1:] //字符串切片操作
	fmt.Printf("%s\n", s)
}


错误类型

error类型,用来处理错误信息,Go语言的package里面还有专门一个包errors来处理错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值