在golang编程中总结的基础语法及常见的问题
写下,自己在用golang开发中,用到的东西,有啥写啥。
今个就写下golang中的控制语句 if else、for、switch、goto,这几个方面。
if 判断对比
package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")}else{fmt.Printf("a<2")} }
for 循环
这里可以直接赋值
for i, j := 1, 10; i < j; i,j=i+1,j+1 { //死循环fmt.Println(i) }
完整的例子
package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")}else{fmt.Printf("a<2")}stra:="111"for i:=0; i< len(stra); i++ {fmt.Println(i)} }
如果想实现死循环,很简单,直接
for{go rui()}
这里在看看switch的用法,学过语言的人都知道的。
package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")} else{fmt.Printf("a<2")}stra:="111"for i:=0; i< len(stra); i++ {fmt.Println(i)} //这里是switchch:="unix"var cl stringswitch ch {case "mac":cl = "mac"case "linux":cl = "linux"case "unix":cl= "unix"}fmt.Println(cl) }
对于判断是可以写更复杂的
用if实现:
kk := 0 bb := 9 if 0 <= kk && bb <= 9 {fmt.Println("zhenghao") }
用switch实现
oo := 11switch {case 0<3 && oo <= 9:fmt.Println("and")case (1 <= 0 && 2 <= 2) || ('A' <= 'A' && 'Z' <= 'Z'):fmt.Println("fei")default:cl = "Other Char" }
还有一个goto,是个在自定义标签中跳转用的
func good(){i := 0xiaorui: //同其它语言也是以冒号结束作为标签println(i)i++goto xiaorui //跳转到xiaorui去}
数组其实用的不多,这里就一笔带过,貌似更多的人在用切片slices
var a [5]intfmt.Println("emp:", a)a[4] = 100fmt.Println("set:", a)fmt.Println("get:", a[4])fmt.Println("len:", len(a))
slice是一个指针而不是值。
slice就是“动态的数组”,传值的时候他也是拷贝赋值,只是他拷贝的是内存地址,是传递指针的。slice总是指向一个底层的array,slice声明也像array一样,只是不需要长度。
切片中有两个概念:一是len长度,二是cap容量,长度是指已经被赋过值的最大下标+1,可通过内置函数len()获得。容量是指切片目前可容纳的最多元素个数,可通过内置函数cap()获得。切片是引用类型,因此在当传递切片时将引用同一指针,修改值将会影响其他的对象。
a := []int{1, 2, 3, 4, 5} s1 := a[2:5] s2 := a[1:3] fmt.Println(s1, s2) s2 = append(s2, 1, 2, 2, 3, 3, 4, 5) s1[0] = 9 fmt.Println(s1, s2) s2 = append(s2,11,22,33) fmt.Println(s2) aa := []string{"aa","bb","xiaorui.cc"} aa = append(aa,"this is rfyiamcool.blog.51cto.com") fmt.Println(aa)
map结构也经常常用,它和python中的dict 几乎一模一样,是一个key-value的hash结构。key可以是除了func类型,array,slice,map类型之外的类型。
它的使用也是非常简单
m:=map[string]string{}
m["key1"] = "val1"
map结构和slice是一样的,是一个指针。赋值的时候是将指针复制给新的变量
map的增删改查操作是这样的:
package main import("fmt" ) func main() {m := map[string]string{"key1":"val1"}fmt.Println(m)m["key2"] = "val2"fmt.Println(m)p := m["key1"]fmt.Println(p)delete(m, "key1")fmt.Println(m) }
今天就这样了,有时间再写
在golang编程中总结的基础语法及常见的问题相关推荐
- python编程的基本方法有哪些_Python编程中常用的基础知识有哪些?
今天小编要跟大家分享的文章是关于Python编程中常用的基础知识有哪些?正在从事Python相关工作的小伙伴们,来和小编一起看一看本篇文章,希望本篇文章能够对大家有所帮助. 1.正则表达式替换 目标: ...
- golang select default continue_golang系列——基础语法
golang系列的文章包含多篇文章,总篇如下,其中包含各篇文章的指引 明月映江雪:golang系列--个人学习笔记总篇zhuanlan.zhihu.com golang的基础语法和其他语言有共通之处 ...
- 问题 | golang编程中的坑
文章目录 背景 坑一:遍历遇上指针 例子1: 例子2: 为什么? 解决方案 坑二:切片和闭包 例子 为什么 解决方案 坑三:切片的append 例子 为什么 解决方案 坑四:time包自定义格式的坑 ...
- python编程能力等级测试_测试不得不知的python编程小技能-----升级版基础语法和优秀的编码习惯...
编程和学习python,最后快速上手.能写小工具,写自动化用例这类要求对鹅厂的测试人员来说都是一些基础的必备素质,但是一个优秀的测试,也是有着一颗开发完美测试工具的心的.但是罗马不是一天构建成,特别是 ...
- 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...
- javascript中正则表达式的基础语法
前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为 ...
- C++中cout的基础语法与换行符endl的用法
编程环境:VSCode Studio,已安装C++拓展插件(1.13.9) 文章为作者原创,转载请注明出处~ 一 什么是"cout"? "cout"是C++ ...
- ahk编程_autohotkey ahk 重点-基础-语法(一)
所有的脚本文件(.ahk)统一使用带BOM的UTF-8格式 写ahk, 只要一个 autohotkey.exe(建议使用unicode32位版本), 简单的, 临时的, 直接用记事本就可以, 但如果常 ...
- TinyOS编程思想和Nesc基础语法
TinyOS操作系统由nesc语言写成,从程序员角度看,它的基本作用就是提供了一组API接口以及一些编程规则. 具体来说,基于nesc语言的TinyOS编程行为具有以下特点: a.兼容C语言:使用ne ...
最新文章
- 分割 bisenetv2笔记
- VB编程宣告终结,微软:不再提供新功能
- C++扬帆远航——3(打印图形)
- JavaScript学习笔记系列2:Dom操作(一)
- YASnippet - emacs 的代码片段管理工具
- 软考网络管理员存储容量计算相关问题
- Leetcode每日一题:738.monotone-increasing-digits(单调递增的数字)
- sql azure 语法_Azure中的新SQL数据仓库
- week7 read
- 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
- NYOJ --277 车牌号
- Hi3519A 开发板重装系统(烧写uboot、kernel、fs) + 重新加载驱动
- unity3d 双人巡逻兵网络游戏
- Mac电脑快捷键盘点:QuickTime Player 键盘快捷键和手势大全
- 后端---史上最全最小白最简单最细致的Java接入微信支付接口(Native接入)
- 2022年农产品行业研究报告
- 洛谷1489 猫狗大战
- Java基础语法小结
- 【iconfont图标】vue引入并使用阿里巴巴iconfont图标流程【uniapp引入iconfont真机APP不显示问题解决,移动端引入报错解决】
- 【Android -- 软技能】《软技能:代码之外的生存指南》之好书推荐(一)
热门文章
- 职务与职级并行套改表_公务员职务职级并行时,15年的主仼科员能套四级调研员吗?...
- linux源代码解读,【原创】Linux MM 源代码解读 (1)
- 程序 峰谷值 提取_医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇...
- python 中参数 ,解包和变量的入门
- c++模板之函数模板
- 项目管理一般知识:什么是项目?什么是项目管理?
- 信息系统项目管理师-项目成熟度模型、量化项目管理核心知识点思维脑图
- Nginx在Windows下载安装启动与配置前后端请求代理
- Maven下载、配置环境变量、配置本地仓库、国内镜像源、在IDEA中配置Maven
- DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项