goto是python语言保留字吗_golang语言部分保留字的举例

golang和c的代码有很大不同的,一不小心就会误用。

1 /*go保留字:*/

2 /*

3 break default func interface select4 case defer go map struct5 chan else goto package switch6 const fallthrough if range type7 continue for import return var8

9 */

10 /*1 package Name 包的名字*/

11 //package go_reserved

12 package main //No1

13 /*2 import "Name" 导入包14 import (15 别名 "fmt" 一旦启用别名,就不能再使用原名了.16 "..."17 )18 */

19 import ( //No2

20 f "fmt"

21 "io"

22 "os"

23 "strconv"

24 )25 /*3 func 函数定义(形参)(返回列表类型)26 return 函数返回27 func func_name()(X .. Xn's type){28 ...29 ...30 return X .. Xn31 }32 func (p mytype) funcname(q int) (r,s int) { return 0,0 }33 func: 函数保留字34 (p mytype): method,这部分称之为receiver而它是可选的.35 funcname: 函数名36 (q int): 输入参数37 (r,s int): 返回值类型列表38 { return 0,0 }: 函数体39 */

40 func sum(a int, b int)(int){//No3

41 return a+b42 }43 /*4 var 变量定义44 var a int45 var b bool46 var c,d int47 var (48 a int49 b bool50 c, d = 3, 451 )52 c ,d := 3, 453 */

54 func func_var(){55 f.Println("var测试举例:")56 var (//No4

57 a, b = 3, 5

58 c int

59 )60 f.Println("I Love Golang")61 sum :=sum(a,b)62 c=sum63 f.Println("3+5=",c)64 }65 /*5 const 变量名: 只能是数字、字符串或布尔值.66 const x = 367 const (68 a = iota69 b = iota70 c //默认是c=iota71 ...72 )73 */

74 func func_const(){75 f.Println("const生成枚举值举例:")76 const ( //No5

77 aa =iota78 ab79 as = "Love"

80 ac81 ad =iota82 ae83 )84 f.Println("const:", aa, ab, as, ac, ad, ae)85 }86 /*6 7 if (语句;)条件 {87 ...88 } else {89 ...90 }91 */

92 func func_if(){93 f.Println("条件判断(if...else...)举例:")94 const ( //No5

95 aa =iota96 ab97 as = "Love"

98 ac99 ad =iota100 ae101 )102 //条件判断表达式

103 if aa == 1 { //No6

104 f.Println("aa is:", aa)105 }else if (aa+1) == 1{106 f.Println("ab is:", ab)107 }else{ //No7

108 f.Println(as)109 }110 }111

112 /*8 for .. ;条件; .. {113 ...114 }115 */

116 func func_for(){117 f.Println("循环判断(for)及数组定义举例:")118 //定义数组方法.

119 var arr[10] int;120 for i:=0; i<10; i++{//No7 跳出for循环,i就失效了.

121 arr[i]=i122 }123 for i:=0; i<10; i++{124 f.Printf("arr[%d]:%d",i,arr[i])125 }126 f.Println("");127 a3:=[3] int {1,2,3}128 for i:=0; i<3; i++{129 f.Printf("a[%d]:%d",i,a3[i])130 }131 f.Println("");132 a4 := [...] int {1,2,3,4,5,6,7}133 for i:=0; i<7; i++{134 f.Printf("a[%d]:%d",i,a4[i])135 }136 f.Println("")137 a := [2][2] int {[2] int{1,2}, [2] int {3,4}}138 b := [2][2] int {[...] int {5,6}, [...] int {7,8}}139 c := [2][2] int {{9,10},{11}}140 for i:=0; i<2; i++{141 for j:=0; j<2; j++{142 f.Printf("a[%d][%d]=%d, b[%d][%d]=%d, c[%d][%d]=%d\n",+

143 i,j,a[i][j],i,j,b[i][j],i,j,c[i][j])144 }145 }146 f.Println("");147 }148 /*9 switch 语句,变量,常量,... {149 10 case X1,...,Xn:150 ...151 11 case Y1,...,Yn: fallthrough //若匹配不到,则自动向下尝试.152 case Z1:153 f() //当匹配到Z1时,因为有fallthrough所以会调用f().154 ...155 12 default:156 ...157 }158 */

159 func func_switch(key int){160 f.Println("switch { case: .. case: .. default: ... }接口测试举例:")161 const ( //No5

162 aa =iota163 ab164 as

165 ac166 ad167 ae168 )169 switch key{//No9

170 case aa: //No10

171 f.Println("key is", aa)172 case ab, as: //ab, as is display ab

173 f.Println("key is", ab)174 case ac: //ac is lost

175 casead:176 f.Println("key is", ad)177 case ae: fallthrough //No11 ae is not lost

178 default: //No12

179 f.Println("Default key is", key)180 }181 }182 /*13 type 别名183 type mytype int184 */

185 func func_type(){186 f.Println("type测试举例:")187 type mytype int //No13

188 vara mytype189 a=10

190 f.Println(a)191 }192 /*14 map[]193 15 range194 在 Go 中有 map 类型.195 map 可以认为是一个用字符串做索引的数组(在其最简单的形式下)196 */

197 func func_map(){198 monthdays := map[string]int{199 "Jan":31,"Feb":28,"Mar":31,"Apr":30,200 "May":31,"Jun":30,"Jul":31,"Aug":31,201 "Sep":30,"Oct":31,"Nov":30,"Dec":31, //最后必须有逗号,

202 }203 md := make(map[string]int) //No14 声明map的方法.

204 md = monthdays; //这种方式是指向同一个内存,若操作均发生变化.

205 f.Println(monthdays)206 f.Println(md)207 value,ok := monthdays["Jun"]208 f.Println("md's length=",len(md), "monthdays' length=", len(monthdays), value, ok)209 monthdays["Jun"] = 0, false //删除该元素 方法1.

210 v,o := monthdays["Jun"]211 f.Println(monthdays)212 f.Println(md)213 f.Println("md's length=",len(md), "monthdays' length=", len(monthdays), v, o)214 mk := make(map[string]int) //声明map的方法.

215 for key,ve := range monthdays{ //No15

216 mk[key]=ve //这种方式赋值,不会使用monthdays的空间.

217 }218 f.Println(mk)219 delete(mk, "Jan") //删除该元素 方法2.

220 f.Println("mk is:", mk)221 f.Println("monthdays is", monthdays)222 }223 /*16 goto224 goto标签,函数内部跳转.225 */

226 func func_goto(){227 i := 0

228 next:229 if i<10{230 f.Printf("%d", i)231 i=i+1

232 goto next //No16

233 }234 f.Printf("\ni=%d>=10, Func_goto is stoped!\n", i)235 }236 /*17 defer 延后执行方法237 18 return 返回值列表238 func func_name(){239 file.Open("filename")240 defer file.Close() //在func_name()函数退出前执行close241 ...242 }243 */

244 func readfile() string{245 fi,err := os.Open("json.go")246 if err !=nil{247 panic(err)248 }249 defer fi.Close() //No17

250 chunks := make([]byte,1024,1024)251 buf := make([]byte,1024)252 for{253 n,err :=fi.Read(buf)254 if err != nil && err !=io.EOF{255 panic(err)256 }257 if 0==n { break}258 chunks=append(chunks, buf[:n]...)259 f.Println(string(buf[:n]))260 }261 return string(chunks) //No18

262 }263 /*19 struct 结构体264 type 别名 struct{265 var1 vartype266 var2 vartype267 ...268 }269 *20 continue 继续下一个270 *21 break 跳出本次循环271 */

272 func func_struct(){273 type student struct{ //No19

274 id int

275 score int

276 name string

277 }278 var s[10] student279 for i:=0; i<10; i=i+1{280 s[i].id=i+10

281 s[i].score=i+10

282 s[i].name="Name"+strconv.Itoa(i)283 }284 for i:=0; i<10; i++{285 if i%2==0 { continue }//No20

286 if i%5==0 { break }//No21

287 f.Println(s[i])288 }289 for i,value:=range s{290 f.Println(i, value)291 }292 f.Println(s)293 }294 /*22 interface295 方法集合296 */

297 type S struct{298 i int

299 }300 func (p *S) Get() int{301 returnp.i302 }303 func (p *S) Put(v int){304 p.i=v305 }306 type I interface{307 Get() int

308 Put(int)309 }310 func func_interface(p I){311 p.Put(15)312 f.Println("Interface is:",p.Get())313 }314 /*23 go315 */

316 func myprint(s string){317 f.Printf("%v is Ready!\n", s)318 }319 func func_go(){320 go myprint("I")321 go myprint("Love")322 go myprint("Golang")323 f.Println("func_go is Waiting")324 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值