go语言基础学习笔记

package main

import "fmt"
import "unsafe"
import "time"
/*全局变量*/
var x,y int;
var(
a int
b bool
)

/*赋值*/
var c,d int = 1,2
var e,f =123,"hello"

/*常量*/
const(
a1="abc"
b1=len(a1)
c1=unsafe.Sizeof(a1)
)

/*结构体*/
type Books struct{
title string
author string
subject string
book_id int
}


/*接口*/
type Phone interface{
call()
}
type NokiaPhone struct{
}
func (nokiaPhone NokiaPhone) call(){
fmt.Println("i am nokia ,i call you !")
}

type IPhone struct{

}
func (iphone IPhone) call(){
fmt.Println("i am iphone ,i call you !")
}
/*接口*/



func main(){
/*接口*/
var phone Phone
phone =new(NokiaPhone)
phone.call()

phone=new(IPhone)
phone.call()
/*结构体*/
fmt.Println(Books{"go语言","www.go.com","go 语言教程",657894})
fmt.Println(Books{title:"go语言",author:"www.go.com",subject:"go 语言教程",book_id:657894})
fmt.Println(Books{title:"go语言",author:"www.go.com"})
/*赋值*/
var stockcode =123
var enddate="2020-12-13"
var url="code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
fmt.Println("hello,world!")
fmt.Println("-----------------------------")
var a string = "Runoob"
fmt.Println(a)
fmt.Println("#############################")
var b,c int = 1,2;
fmt.Println(b,c)
fmt.Println("=============================")
g,h:=123,"hello"
println(x,y,a,b,c,d,e,f,g,h)
println(a1,b1,c1)
/*iota用法*/
const(
a2=iota
b2
c2
d2="ha"
e2
f2=100
g2
h2=iota
i2
)

fmt.Println(a2,b2,c2,d2,e2,f2,g2,h2,i2)
/*函数*/
a3:=4
b3:=6
result:=max(a3,b3)
fmt.Sprintf("求最大值%d",result)

var b4 int=10
fmt.Printf("变量的地址:%x",&b4)


println("指针demo---------------------------")
var va int = 20
var ip *int
ip = &va
fmt.Printf("va变量的地址为:%x\n",&va)
fmt.Printf("ip变量存储的指针地址为:%x\n",ip)
fmt.Printf("*ip变量的值为:%d\n",*ip)

println("range demo---------------------------")
/*切片 range*/
nums:=[]int{2,3,5,4}
sum:=0
for _,num:= range nums{
sum+=num
}
fmt.Println("sum:",sum)

//range map 键值对
kvs := map[string]string{"a":"apple","b":"banana"}
for k,v :=range kvs{
fmt.Printf("%s ->%s\n",k,v)
}
println("map demo------------------------------")
var demoMap map[string]string
demoMap = make(map[string]string)
demoMap["france"]="巴黎"
demoMap["italy"]="意大利"
demoMap["japan"]="日本"
demoMap["india"]="印度"
demoMap["china"]="中国"

for country :=range demoMap{
fmt.Println(country,"是",demoMap[country])
}
delete(demoMap,"france")

for country :=range demoMap{
fmt.Println(country,"是",demoMap[country])
}

country,ok:=demoMap["american"]
if(ok){
fmt.Println("american 是",country)
}else{
fmt.Println("american死掉了!")
}



var sum1 int =17
var count1=5
var mean  float32
/*mean =sum1/count1*/
fmt.Printf("前mean的值为:%f\n",mean)

mean=float32(sum1)/float32(count1)
fmt.Printf("后mean的值为:%f\n",mean)
println("-------------------------------------")

/*并发*/
go say("world")
say("hello")

/*通道*/
s:=[]int{7,2,9,6,5,2,-1,0}
c5 := make(chan int)
go sum(s,c5)
go sum(s,c5)
x1,y1:=<-c5,<-c5 //从通道c5中接收数值
fmt.Println(x1,y1,x1+y1)
}

func sum1(s []int,c chan int){
sum:=0
for _,v:=range s{
sum+=v
}
 c<-sum
}

func sum(s []int, c chan int) {
        sum := 0
        for _, v := range s {
                sum += v
        }
        c <- sum // 把 sum 发送到通道 c
}




/*并发*/
func say(s string){
for i:=0;i<5;i++{
time.Sleep(100*time.Millisecond)
fmt.Println(s)
}
}



func max(num1,num2 int)int{
var result int
if(num1>num2){
result= num1
}else{
result = num2
}
return  result
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科学熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值