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.mzph.cn/news/760180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之模版详解

一.array与vector对比 由图发现&#xff0c;使用array数组是必须提前开好空间&#xff0c;而vector是顺序表&#xff0c;可以实现动态开辟空间 array也支持迭代器&#xff0c;如下&#xff1a; int main() {array<int, 10> arr{ 1,2,3,4,5,6,7,8,9,10 };auto it arr.be…

【感悟《剑指offer》典型编程题的极练之路】01数组篇!

​​​​​​​ ​​​​​​​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ ​​​​​​​ 文章所属专栏&#xff1a;《剑指offer》典型编程题的极练之路 ​​​​​​​ ​​​​​​​ …

内网横向1

IPC$详解 IPC( Internet Process Connection) 共享 “ 命名管道 ” 的资源 , 是为了实现进程间通信而开放的命名管道。 IPC 可以通过验证用户名和密码获得相应的权限&#xff0c;通常在远程管理计算机和查看计算机的共享资源时使用 通过 ipc$ &#xff0c;可以与目标机器建立连…

vue3+ts+vite axios封装请求并扩展入参

requset.ts import axios, { AxiosResponse } from axios import { getToken, removeToken } from @/utils/auth// 创建axios实例 const service = axios.create({baseURL: , // 所有的请求地址前缀部分(没有后端请求不用写)timeout: 60000 // 请求超时时间(毫秒)// withCrede…

第六十一回 放冷箭燕青救主 劫法场石秀跳楼-编译安装飞桨paddlepaddle@openKylin+RISCV

卢俊义在水里被张顺抓住&#xff0c;用轿子抬到了梁山。宋江等人下马跪在地上迎接&#xff0c;请他坐第一把交椅。卢俊义宁死不从&#xff0c;大家只好说留他在山寨几天&#xff0c;先让李固带着马车货物回去。吴用对李固说&#xff0c;你的主人已经答应坐第二把交椅了&#xf…

企业微信应用消息点击打开小程序的方法

官方给的企业微信消息有两种&#xff1a;小程序消息和应用消息 小程序消息&#xff1a;是可以直接点击打开小程序的&#xff0c;但是在微信中收不到消息。&#xff08;企业微信中绑定小程序即可&#xff09; 应用消息&#xff1a;可以在微信中收到&#xff0c;但是不能直接点…

安科瑞智能断路器产品介绍【可监可控 远程操控 短路保护】

开发背景 过去几年智慧用电的产品应用中&#xff0c;大多数只安装于进线测。主要存在以下几个问题&#xff1a;难定位&#xff0c;不知道具体哪个回路出线问题&#xff0c;排查困难&#xff1b;出线过载或线缆温度过高无法知晓&#xff1b;即使是出线回路安装了的场景&#xf…

Vue3 依赖注入provide与inject

简介 关于provide与inject下面是vue官网上的一些介绍 通常情况下&#xff0c;当我们需要从父组件向子组件传递数据时&#xff0c;会使用props。想象一下这样的结构&#xff1a;有一些多层级嵌套的组件&#xff0c;形成了一颗巨大的组件树&#xff0c;而某个深层的子组件需要一个…

HarmonyOS卡片刷新服务,信息实时更新一目了然

如今衣食住行娱乐影音等App占据了大多数人的手机&#xff0c;一部手机可以满足日常大多需求&#xff0c;但对需要经常查看或进行简单操作的场景来说&#xff0c;总需要用户点开App操作未免过于繁琐。 针对该问题&#xff0c; HarmonyOS SDK为用户提供了Form Kit&#xff08;卡…

ARM64汇编07 - 访存指令

访存指令是ARM64汇编语言中的一部分&#xff0c;涵盖了数据访问和内存操作的指令。这些指令使处理器能够与内存进行交互&#xff0c;包括读取数据、写入数据以及执行其他内存相关的操作。理解这些指令对于理解处理器如何与内存交互以及如何管理数据至关重要。 访存指令介绍两个…

ChatGPT又要更新了?GPT-5发布时间确定!

在K-Startup-OpenAI Match Day活动上&#xff0c;OpenAI CEO萨姆奥特曼(Sam Altman)首次公开肯定了GPT-5的潜力。他指出&#xff0c;GPT-5不仅会带来显著的进步&#xff0c;更将在高级推理功能上实现一次前所未有的飞跃&#xff0c;打破外界对于其仅是渐进式提升的误解。 同时现…

开源表单设计器颗粒度级别控制表单的显示条件原理分析

表单渲染中, 有些表单的显示有不同条件, 比如需要上一个表单的开关打开,或者文本内容为 xxxx, 或者需要大于或等于或小于指定值, 或者需要选中某个选项, 或者需满足以上多个条件或在满足多个条件中的一个, 有 n 种场景选择, 这样就需要条件显示配置功能, 来满足多样化需求 预览…

【干货】Java开发者快速上手.NET指南

前言 前几天有小伙伴在技术群里发了一个微软官方出的&#xff1a;适用于Java开发人员的.NET快速入门免费电子书&#xff0c;今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料。 微软适用于Java开发人员的.NET快速入门指南 下载阅读地址&#xff1a;适用于 …

(基础)AJAX概念和axios使用、URL、请求方法和数据提交、HTTP协议、接口、form-serialize插件

AJAX概念和axios使用 AJAX概念 AJAX就是使用XMLHttpRequest对象与服务器通信&#xff0c;它可以使用JSON、XML、HTML和text文本等格式发送和接收数据&#xff0c;AJAX最吸引人的就是它的异步特性&#xff0c;也就是说它可以在不重新刷新页面的情况下与服务器通信&#xff0c;…

灰度方案设计

灰度实体类 Datapublic static class NewSwitch{//是否开启灰度&#xff0c;true是&#xff0c;false否Boolean enable;//灰度基数&#xff0c;-1的时候默认为全部开启灰度Long divisor;//灰度比例 参数对divisor取余小于等于mod命中灰度Long mod;//白名单&#xff0c;优先判断…

使用Linq的Distinct方法

代码进行简单的分析&#xff1a; DistinctBy 方法&#xff1a; 这个方法是一个泛型方法&#xff0c;参数包括 source&#xff08;要去重的源集合&#xff09;和 keySelector&#xff08;用于选择去重的键的委托&#xff09;。在方法内部&#xff0c;创建了一个 HashSet 对象 …

手撕C语言题典——逆序输出

有这样一个问题&#xff1a;读入一些整数&#xff0c;逆序输出到一行中。已知的是该整数不超过100个。我们该怎么办呢&#xff1f;我们先将这些整数循环输入&#xff0c;输入每个整数之后&#xff0c;我们只能将数组存下来&#xff0c;而这个地方就是数组。 本章可能用到的知识…

Python断言

Python断言 1 什么是Python断言2 使用场景3 常用断言函数 1 什么是Python断言 断言就是断定指定条件一定成立&#xff0c;若不成立则抛出异常。Python断言关键字为&#xff1a;assert&#xff0c;断言也可以理解为简单版的 if 语句&#xff0c;判断条件的值&#xff0c;若为Tr…

windows10装windows11的CMD(Terminal)终端

文章目录 一 前言二 安装Terminal三 启动设置成默认启动cmd 一 前言 我装了WSL的LINUX系统&#xff0c;在 windows10 系统下面不方便启动linux&#xff0c;但是Windows11 在cmd 里面就可以打开&#xff0c; 所以找了这个方法 二 安装Terminal 先在windows10微软的商城(Microso…

>>Vue3+pinia+echarts等实现疫情可视化大图

一.>>前言 1.这个项目是在小满实战篇可视化&#xff08;第九章-饼图&#xff09;_哔哩哔哩_bilibili 这一系列课程为基础来做的&#xff0c;真的很感谢小满老师&#xff0c;讲的内容干货满满&#xff0c;暂时解决了手上没有项目的难题。大家可以去观摩一下他的优质课程。…