一、Go语言循环
package main
import "fmt"
func main() {
//循环方式1
sum := 0
for i := 1; i <=10; i++{
sum += i
}
fmt.Println(sum)
//循环方式2
sum = 0
//像while循环
for sum<=10 {
sum ++;
}
fmt.Println(sum)
//迭代输出数组
strs := [2]string{"google", "baidu"}
for i,s := range strs {
//i为小标,s为值
fmt.Println(i, s)
}
nums := [6]int{11, 22, 33, 44, 55, 66}
for i, x := range nums {
fmt.Println(i, x)
}
}
二、条件语句
package main
import "fmt"
func main(){
var grade string = "B"
var marks int = 90
switch marks {
case 90: grade = "A"
case 80: grade = "B"
case 50, 60, 70: grade = "C"
default: grade = "D"
}
fmt.Println(grade)
switch{
case grade == "A":
fmt.Println("优秀")
case grade == "B", grade == "C":
fmt.Println("良好")
case grade == "D":
fmt.Println("及格")
case grade == "F":
fmt.Println("不及格")
default:
fmt.Println("差")
}
}
三、函数
package main
import "fmt"
func main() {
var a,b =10,33
//返回多个值
a, b = swap(a,b)
fmt.Println(a, b)
//返回单个值
fmt.Println(max(a,b))
//传递引用
swapX(&a, &b)
fmt.Println(a, b);
}
func swap(x, y int) (int, int){
return y,x
}
func max(x, y int) int{
if(x >= y){
return x
}else{
return y
}
}
func swapX(x *int, y *int){
tmp:= *x
*x = *y
*y = tmp
}
四、结构体
package main
import "fmt"
type Book struct{
title string
author string
id int
}
func changeBook(book Book){
book.title = "Java从入门到放弃"
}
func changeBookX(book *Book){
book.title = "Java从入门到放弃"
}
func (book *Book) printBook(){ //为Book类型绑定printBook的方法,*Book为指针引用可以修改传入参数的值
//方法归属于类型,不归属于具体的对象,声明该类型的对象即可调用该类型的方法
fmt.Printf("book.title:%s\n", book.title)
fmt.Printf("book.author:%s\n", book.author)
fmt.Printf("book.id:%d\n", book.id)
}
func main(){
var book1 Book
book1.title = "Go从入门到放弃"
book1.author = "张三"
book1.id = 0001
fmt.Println(book1)
//修改title;发现title并没有被修改
changeBook(book1)
//修改后输出
fmt.Println(book1)
//修改title;发现title成功修改
changeBookX(&book1)
//修改后输出
fmt.Println(book1)
book1.printBook();
}