一、golang运算符

1、算术运算符

+ 相加
- 相减
* 相乘
/ 相除
% 求余
++ 自增
-- 自减

2、关系运算符

== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

3、位运算符

& 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。
| 按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或。
^ 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
<< 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

4、逻辑运算符

&& 与
|| 或
!(感叹号) 非

5、赋值运算符

+= (C += A 等于 C = C + A)
-= (C -= A 等于 C = C - A)
*= (C *= A 等于 C = C * A)
/= (C /= A 等于 C = C / A)
%= (C %= A 等于 C = C % A)

6、运算符优先级

二、golang if判断

语法:
if 条件1 {
} else if 条件2 {
} else if 条件3 {
} else {
}

如:

  1. func add(x int){
  2. if x == 0 {
  3. fmt.Println("0")
  4. }else if x == 1 {
  5. fmt.Println("1")
  6. }else if x == 2 {
  7. fmt.Println("2")
  8. }
  9. }

  

三、for循环

语法:
for i := 0; i < 10; i++ {
}
如:

  1. func main(){
  2. for i := 0;i < 10;i++{
  3. fmt.Println(i)}
  4. }

四、while语句(死循环)

#死循环(go没有while,死循环也是用for)
语法:
for true {
}或
for {
}

如:

  1. var i int
  2. for {
  3. i += 1
  4. fmt.Println(i)
  5. }

  

五、range (类似python的range)(不能是数字,可以是字符串、列表、键值对等)

例子:

  1. 例子1
  2. x := "hello"
  3. for i := range x{
  4. fmt.Println(i)
  5. }
  6. 结果:
  7. 0
  8. 1
  9. 2
  10. 3
  11. 4
  12.  
  13. 例子2
  14. x := "hello"
  15. for i,v := range x{
  16. fmt.Println(i,v)
  17. }
  18. 结果:
  19. 0 104
  20. 1 101
  21. 2 108
  22. 3 108
  23. 4 111

  

六、switch case

语法:
switch var {
case var1:
case var2:
case var3:
default:
}

如:

  1. func sc(x int){
  2. switch x {
  3. case 1:
  4. fmt.Println("1")
  5. case 2,3:
  6. fmt.Println("2")
  7. case 5,4:
  8. fmt.Println("3")
  9. default:
  10. fmt.Println("default")
  11.  
  12. }
  13.  
  14. }
  15.  
  16. func main() {
  17. sc(1)
  18. sc(2)
  19. sc(5)
  20. sc(10)
  21. }
  22.  
  23. 结果:
  24. 1
  25. 2
  26. 3
  27. default

  

#使用fallthrough强制执行后面的case代码

例子:

  1. func sc(x int){
  2. switch x {
  3. case 5,4:
  4. fmt.Println("3")
  5. fallthrough //添加,就会执行后面一条case的结果
  6. case 6,7:
  7. fmt.Println("5")
  8. case 8:
  9. fmt.Println("7")
  10. default:
  11. fmt.Println("default")
  12.  
  13. }
  14.  
  15. }
  16.  
  17. func main() {
  18. sc(5)
  19. }
  20. 结果:
  21. 3
  22. 5

  

七、label break(用于退出循环)

例如:

  1.  
  2. func main() {
  3. x := 0
  4. LABLE_test: //指定标签
  5. for {
  6. x += 1
  7. fmt.Println(x)
  8.      if x == 3{
  9. continue //跳过当前循环,和其它语言的continue一样
  10.      }
  11. if x > 10{
  12. break LABLE_test //跳出指定的标签,如果后面不接标签的话,就是退出当前循环
  13. }
  14. }
  15.  
  16. }
  17. 结果:
  18. 1
  19. 2
  20. 4
  21. 5
  22. 6
  23. 7
  24. 8
  25. 9
  26. 10
  27. 11

  

八、goto语句

1、go语言的goto语句可以无条件的转移到程序中的指定行
2、goto语句通常与条件语句配合使用
3、在go程序中一般不主张使用goto语句。

goto语法

toto label
......
label:statement

goto流程图

例如:

  1. package main
  2. import "fmt"
  3.  
  4. func main(){
  5. var n int = 2
  6. fmt.Println("goto")
  7. if n > 1 {
  8. goto label1
  9. }
  10. fmt.Println("s1")
  11. fmt.Println("s2")
  12. fmt.Println("s3")
  13. label1:
  14. fmt.Println("s4")
  15. fmt.Println("s5")
  16.  
  17. }
  18.  
  19. ##结果
  20. goto
  21. s4
  22. s5

  

九、golang包的导入

包的基本概念

每一个go文件都是属于一个包,go是以包的形式累管理文件和项目目录结构的。

包的作用

1、区分相同名字的函数,变量等标识符

2、当程序文件很多时,可以很好的管理项目

3、控制函数、变量的访问范围,即作用域

包的导入

1、单个包导入 import "fmt"
2、多个包导入
import (
"fmt"
"strings"
)
3、 点(.)操作
点(.)标识的包导入后,调用该包中函数时可以省略前缀包名
如:
package main
import . "fmt"
func main(){
Println("ok") //省略了前面的fmt
}
4、别名
如:
package main
import qq "fmt" //设置fmt别名为qq
func main(){
qq.Println("ok")
}
5、(_)下划线
导入该包,但不导入整个包,而是执行该包中的init函数,因此无法通过包名来调用包中的其他函数。
如:
import _ "fmt"

十、包的导出

1、查看GOPATH变量,没有就配置

  1. [root@localhostgo_test]#go env
  2. GOARCH="amd64"
  3. GOBIN=""
  4. GOEXE=""
  5. GOHOSTARCH="amd64"
  6. GOHOSTOS="linux"
  7. GOOS="linux"
  8. GOPATH="/root/go_test" //变量
  9. GORACE=""
  10. GOROOT="/usr/lib/golang"
  11. GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
  12. GCCGO="gccgo"
  13. CC="gcc"
  14. GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build340883937=/tmp/go-build -gno-record-gcc-switches"
  15. CXX="g++"
  16. CGO_ENABLED="1"
  17. CGO_CFLAGS="-g -O2"
  18. CGO_CPPFLAGS=""
  19. CGO_CXXFLAGS="-g -O2"
  20. CGO_FFLAGS="-g -O2"
  21. CGO_LDFLAGS="-g -O2"
  22. PKG_CONFIG="pkg-config"
  23.  
  24. ###2、创建包
  25. [root@localhostfz]#ll
  26. 总用量 4
  27. -rw-r--r-- 1 root root 56 3 20 09:42 fz.go
  28. [root@localhostfz]#pwd
  29. /root/go_test/src/fz
  30. [root@localhostfz]#ll
  31. 总用量 4
  32. -rw-r--r-- 1 root root 56 3 20 09:42 fz.go
  33. [root@localhostfz]#cat fz.go
  34. package fz
  35.  
  36. func Add(a,b int) int { //首字母必须大写
  37. return a + b
  38. }
  39.  
  40. ##应用
  41. [root@localhostgo_test]#cat class7.go
  42. package main
  43. import (
  44. "fmt"
  45. "fz"
  46. )
  47.  
  48. func main(){
  49. var x int
  50. x = fz.Add(1,2)
  51. fmt.Println(x)
  52.  
  53. }
  54.  
  55. ##测试
  56. [root@localhostgo_test]#go run class7.go
  57. 3

  

golang运算与循环等的更多相关文章

  1. golang(一)-for 循环

    golang 的循环控制中大多还是和java 很相似的 , 不过golang只有一种循环 就是for循环: for 有三个循环控制关键字 : break . continue . goto  其中   ...

  2. for循环的运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 与 自己创建函数取值 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根

    今天学习的是for循环,对for循环的运算有了理解. document.write(" ")里的内容在网页上展示出来 有名函数非常重要!!!!!!!!!!!!!!!!!!!!!并且 ...

  3. 第一天:javascript实现界面运算及循环语句跳转语句

    文档位置:untitled3(c:\user\dell\WebstormProjects\untitled3\testjstry0.html) 知识点1: 1.新创建html文件,编辑文档如下: &l ...

  4. python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环

    开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...

  5. [Go] golang的range循环遍历通道

    range循环会无限在channels上面迭代 package main import ( "fmt" "time" ) func main() { //创建一 ...

  6. 410 for 循环 运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 date math 局部变量 函数 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根

    for(1.表达式1;2.表达式2;3.表达式3){ 4.循环体语句; } 先执行1 ,在执行2, 表达式, 如果2结果为false,退出循环 如果2是true 执行4 在执行3 执行2 举例打印1- ...

  7. 10_bash_变量_条件判断及运算_sed_循环

    shell编程: 编译器.解释器编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量):变量在使用前,必须事先声明,甚至还需要初始化 事先转换成可执行格式 C/C++.C#.Ja ...

  8. python 运算/赋值/循环

    python3 中只有一个InputPython2 中的raw_input与python3中的input一模一样python3中input输出字符串类型int,float=数字类型//地板除 % 取余 ...

  9. Golang教程:循环语句

    循环语句用于重复执行一段代码. for 语句是 Go 中唯一的循环语句.Go 没有提供其他语言(如 C)中的 while 和 do while 语句. for 语句语法 for 语句的语法如下: fo ...

随机推荐

  1. 通过多线程处理提高Redis性能

    Redis通常被称为单进程单线程模型. 这不是真的! Redis还运行多个后端线程来执行后端清理工作,例如清理脏数据和关闭文件描述符.在Redis中,主线程负责主要任务,包括但不限于:接收来自客户端的 ...

  2. java压缩文件解压:调用WinRAR5命令强于自己写代码实现

    最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.j ...

  3. [伟哥开源项目基金会](https://github.com/AspNetCoreFoundation)

    伟哥开源项目基金会 GitHub_base=> 伟哥开源项目基金会 该项目作者为伟哥,GitHub地址:https://github.com/amh1979: 该项目维护者为鸟窝,GitHub地 ...

  4. AXI-Lite总线及其自定义IP核使用分析总结

    ZYNQ的优势在于通过高效的接口总线组成了ARM+FPGA的架构.我认为两者是互为底层的,当进行算法验证时,ARM端现有的硬件控制器和库函数可以很方便地连接外设,而不像FPGA设计那样完全写出接口时序 ...

  5. Cs231n课堂内容记录-Lecture 8 深度学习框架

    Lecture 8  Deep Learning Software 课堂笔记参见:https://blog.csdn.net/u012554092/article/details/78159316 今 ...

  6. .NET CORE学习笔记系列(2)——依赖注入【2】基于IoC的设计模式

    原文:https://www.cnblogs.com/artech/p/net-core-di-02.html 正如我们在<控制反转>提到过的,很多人将IoC理解为一种“面向对象的设计模式 ...

  7. Dockerfile 规范

    https://time-track.cn/compile-docker-from-source.html 参考 https://time-track.cn/install-docker-on-ubu ...

  8. C# 使用DES对字符串进行加密

    1.DES加密是属于对称加密,加密和解密使用的密钥必须要保持一致,且必须为8位,使用前首先添加引用: 2.逻辑实现代码如下:

  9. 网络虚拟化基础一:linux名称空间Namespaces

    一 介绍 如果把linux操作系统比作一个大房子,那命名空间指的就是这个房子中的一个个房间,住在每个房间里的人都自以为独享了整个房子的资源,但其实大家仅仅只是在共享的基础之上互相隔离,共享指的是共享全 ...

  10. JavaWeb工程中web.xml基本配置(转载学习)

    一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对. web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文 ...