当前位置: 首页 > news >正文

Go语言学习01-基本程序结构

文章目录

    • Go语言学习01-基本程序结构
      • 基本程序结构
      • 应用程序入口
      • 退出返回值
      • 编写测试程序
      • 快速设置连续值
      • 基本数据类型
      • 类型的预定义值
      • 指针类型
      • 运算符
        • 算数运算符
        • 比较运算符
          • 用 == 比较数组
        • 逻辑运算符
        • 位运算符
        • &^ 按位 置零

Go语言学习01-基本程序结构

基本程序结构

package main // 包, 表明代码所在的模块(包)
import "fmt" // 引入代码依赖
// 功能实现
func main() {fmt.Println("Hello World!")
}

应用程序入口

  1. 必须是 main 包: package main
  2. 必须是 main 方法: func main()
  3. 文件名不一定是 main.go

退出返回值

与其他主要编程语言的差异

  • Go 中main 函数不支持任何返回值

  • 通过 os.Exit 来返回状态

  • main 函数不支持传入参数

    func main(arg [] string)

  • 在程序中直接通过 os.Args 获取命令行参数

编写测试程序

  1. 源码文件以 _test 结尾: xxx_test.go
  2. 测试方法名以 Test 开头: func TestXXX(t *testing.T) {...}

快速设置连续值

const (Monday = iota + 1TuesdayWednesdayThursdayFridaySaturdaySunday
)
const (Open = 1 << iotaClosePending
)

基本数据类型

bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32, represents a Unicode code point
float32 float64
complex32 complex64

类型的预定义值

  1. math.MaxInt64
  2. math.MaxFloat64
  3. math.MaxUint32

指针类型

与其他主要编程语言的差异

  1. 不支持指针运算
  2. string 是值类型, 其默认的初始化值为空字符串, 而不是 nil

运算符

算数运算符
运算符描述实例
+相加A + B 输出结果 30
-相减A - B 输出结果 -10
*相乘A * B 输出结果 200
/相除B / A 输出结果 2
%求余B % A 输出结果 0
++自增A ++ 输出结果 11
自减A – 输出结果 9

Go 语言没有前置的 ++, --, (++a)

比较运算符
运算符描述实例
==检查两个值是否相等, 如果相等返回 True 否则返回 False(A == B) 为 False
!=检查两个值是否不相等, 如果不相等返回 True 否则返回 False(A != B) 为 True
>检查左边值是否大于右边值, 如果是返回 True 否则返回 False(A > B) 为 False
<检查左边值是否小于右边值, 如果是返回 True 否则返回 False(A < B) 为 True
>=检查左边值是否大于等于右边值, 如果是返回 True 否则返回 False(A >= B) 为 False
<=检查左边值是否小于等于右边值, 如果是返回 True 否则返回 False(A <= B) 为True
用 == 比较数组
  • 相同维数且含有相同个数元素的数组才可以比较
  • 每个元素都相同的才相等
逻辑运算符
运算符描述实例
&&逻辑 AND 运算符. 如果两边的操作数都是 True, 则条件 True, 否则为 False.(A && B) 为 False
||逻辑 OR 运算符. 如果两边的操作数有一个 True, 则条件 True, 否则为 False.(A || B) 为 True
!逻辑 NOT 运算符. 如果条件为 True, 则逻辑 NOT 条件 False, 否则为 True.!(A && B) 为 True
位运算符
运算符描述实例
&按位与运算符 “&” 是双目运算符. 其功能是参与运算的两数各对应的二进位相与.(A & B)结果为 12, 二进制为 0000 1100
|按位与运算符 “|” 是双目运算符. 其功能是参与运算的两数各对应的二进位相或.(A | B) 结果为61, 二进制为 0011 1101
^按位与运算符 “^” 是双目运算符. 其功能是参与运算的两数各对应的二进位相异或.(A ^ B) 结果为49, 二进制为 0011 1101
<<左移运算符 “<<” 是双目运算符. 左移 n 位就是乘以 2 的 n 次方. 其功能把 “<<” 左边的运算数的各二进位全部左移若干位, 由 “<<” 右边的数指定移动的位数, 高位丢弃, 低位补0A << 2 结果为 240, 二进制为 1111 0000
>>右移运算符 “>>” 是双目运算符. 右移 n 位就是除以 2 的 n 次方. 其功能是把 “>>” 左边的运算数的各二进位全部右移若干位, “>>” 右边的数指定移动的位数A >> 2 结果为 0000 1111
&^ 按位 置零

1 &^ 0 – 1

1 &^ 1 – 0

0 &^ 1 – 0

0 &^ 0 – 0

http://www.lryc.cn/news/322649.html

相关文章:

  • rundeck k8s部署踩坑
  • 每天学习几道面试题|Kafka(二)架构设计类
  • Spring 实现 OAuth2 授权之解决方案
  • el-select使用filterable下拉无法关闭得问题
  • 基于javaweb(springboot)城市地名地址信息管理系统设计和实现
  • vue iframe实现父页面实时调用子页面方法和内容
  • HarmonyOS ArkTS 开发基础/语言
  • AI大模型学习
  • 2024年【T电梯修理】考试内容及T电梯修理作业考试题库
  • 2.vscode 配置python开发环境
  • [蓝桥杯 2015 省 B] 生命之树
  • 为什么Hashtable不允许插入nuIl键和null值?
  • 【WPF应用4】WPF界面对象编辑
  • js数组去重常见方法
  • 【Java Web基础】一些网页设计基础(二)
  • python中tkinter计算器
  • [嵌入式系统-39]:龙芯1B 开发学习套件 -9-PMON的文件结构
  • [蓝桥杯2012] 罗马数字
  • Thinkphp+workman+redis实现多进程异步任务处理
  • 牛客NC196 编辑距离(一)【较难 DFS/DP,动态规划,样本对应模型 Java,Go,PHP】
  • 走进jvm之垃圾回收器篇
  • rtt自动初始化机制学习
  • 基于SpringBoot和Vue的大学生租房系统的设计与实现
  • ai制图常用的软件有哪些?这5款ai生图工具值得推荐!
  • 一分钟了解JAVA语言
  • L4 级自动驾驶汽车发展综述
  • HTML + CSS 核心知识点- 定位
  • Spring MVC(二)-过滤器与拦截器
  • python vtk读取vtk文件
  • LeetCode 2671.频率跟踪器:俩计数哈希表