gong语言基础
介绍
go 语言是一个轻量级语言,它拥有协程,可以让开发人员轻松完成多核和网络编程,同时,它具有自动内存管理和垃圾回收机制,提高内存的利用率.在编写风格上,go语言结合c,c++,java,javascript的语法特点,形成语句简短,面向对象,垃圾回收机制,存在强弱类型的风格.
基础语法
变量
go语言也遵循强变量的规则,也就是说必须先声明变量,再定义和初始化变量,其编写风格为 var/const 变量名称 变量类型 或 变量名称 := 字面值(该形式允许同时为多个变量赋值). 其变量类型有整数,浮点数,布尔类型,复数,字符串,以及其他. 如下我使用了一个程序定义了整数,浮点数,布尔类型,字符串等多个变量并将其输出. 核心代码
//定义变量并格式化输出
var number int
const (
name string = "贾琦"
age = 22
)
number = 13
fmt.Println("显示的整数是", number)
fmt.Println("我的名字是", name)
fmt.Println("我的年龄是", age)
}
复制代码
运算符与表达式
我们通常使用运算符操作变量,常量和字面值,通过cpu运算完成最终计算. 和其他语言一样,go语言也有算数运算符,逻辑运算符,布尔运算符,自增自减运算符等等.其优先级也与其他语言一样. 同样,用一个运算符可以有多种用途.就像+在实数表达式中做加法运算,在字符串中又可以做字符串拼接.
控制与循环
有时,程序需要在不同的程序中完成不同语句块的计算,也就是说根据条件执行结果分支的执行不同操作. go语言中条件语句与if关键字使用一个空格区分.左括号必须与if语句在同一行,否则会出现编译错误.循环语句也是同样的道理.
函数
go语言函数是基本的代码块,用于执行一个任务.Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。
核心代码
/** 描述:该程序用于替换字符串中的某个字符 */ var line string = "hello world" c := []rune(line) c[0] = 'a' defaultString := string(c) fmt.Println("源字符串是", line) fmt.Println("改变后的字符串是", defaultString) }
数组
Go 语言提供了数组类型的数据结构。
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 我设计程序完成了数组的反转和迭代器输出
`package main
import "fmt"
/*
*
该程序用于反转数组,时间复杂度为O(n)
*/
func main() {
list := []int32{1, 2, 3, 4, 5}
for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 {
list[i], list[j] = list[j], list[i]
}
//使用迭代器打印数组
for pos, char := range list {
fmt.Println(pos, " ", char)
}
//for i := 0; i < len(list); i++ {
// fmt.Println(list[i])
//}
}`
创新开发
根据老师的讲解,我自己使用go语言完成了猜数字的游戏开发.该程序用于描述猜数字的游戏,系统将会生成一个1到100的随机数.
客户输入数字,系统会与数字匹配,显示猜测数随机数的大小关系直至客户猜测正确为止 如下是代码
核心代码
`func main() {
maxNum := 100
//使用时间戳初始化随机化种子
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
fmt.Println("Please input a number")
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error is occured while reading input,please try again", err)
return
continue
}
input = strings.TrimSpace(input) //去除字符串前后所有的字符串
guess, err := strconv.Atoi(input) //将字符串转换为整数
if err != nil {
fmt.Println("Invalid input.Please enter an integer value")
return
continue
}
fmt.Println("Your guess is ", guess)
if guess > secretNumber {
fmt.Println("Your guess is bigger than the secret number,please try again")
} else if guess < secretNumber {
fmt.Println("Your guess is smaller than the secret number,please try again")
} else {
fmt.Println("Correct,you Legend")
break
}
}
}`