当前位置: 首页 > 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

相关文章:

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

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

rundeck k8s部署踩坑

1、镜像启动后原来的定时任务无法运行 参考&#xff1a; https://github.com/rundeck/rundeck/issues/4275 https://stackoverflow.com/questions/60942785/env-variable-for-rundeck-feature-joblifecycleplugin-enabled/60959605#60959605 结论&#xff1a; &#xff08;1&…...

每天学习几道面试题|Kafka(二)架构设计类

文章目录 1. Kafka 是如何保证高可用性和容错性的&#xff1f;2. Kafka 的存储机制是怎样的&#xff1f;它是如何处理大量数据的&#xff1f;3. Kafka 如何处理消费者的消费速率低于生产者的生产速率&#xff1f;4. Kafka 集群中的 Controller 是什么&#xff1f;它的作用是什么…...

Spring 实现 OAuth2 授权之解决方案

Spring Security OAuth2 - 已经废弃的项目 早期的Spring 使用 Spring Security OAuth2 实现 OAuth 2.0 的认证服务器和资源服务器。OAuth2是一个授权框架,它允许第三方应用获取有限的访问权限,而无需获取用户的账号和密码等敏感信息。通过这种方式,OAuth2协议实现了安全的用…...

el-select使用filterable下拉无法关闭得问题

这里推荐一个前端框架 sakuya / SCUI&#xff0c;他里面有个formTable&#xff0c;可以解决很多订单明细保存得问题。基本沿用element-plus的前端使用模式&#xff0c;让表单表格变的非常容易。 这个的供应商插件&#xff0c;当使用filterable后&#xff0c;点击表格重的选项&…...

基于javaweb(springboot)城市地名地址信息管理系统设计和实现

基于javaweb(springboot)城市地名地址信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…...

vue iframe实现父页面实时调用子页面方法和内容

父页面标签添加鼠标按下事件 父页方法中建立iframe通信 实时调用子页面方法 实时更改子页面文本内容...

HarmonyOS ArkTS 开发基础/语言

目录 一、ArkUI (方舟开发框架) 概述 1.1 基本概念 1.2 两种开发范式 1.3 不同应用类型支持的开发范式 二、ArkTS 声明式开发范式 2.1 开发能力 2.2 整体架构 三、ArkTS 基础类型 3.1 Any 类型 3.2 数字类型 3.3 字符串类型 3.4 布尔类型 3.5 联合类型 3.6 数组类…...

AI大模型学习

AI大模型学习 在当前技术环境下&#xff0c;AI大模型学习不仅要求研究者具备深厚的数学基础和编程能力&#xff0c;还需要对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法&#xff0c;AI大模型学习能够不断提升模型的准确性和效率&#xff0c;为人类生活和工作…...

2024年【T电梯修理】考试内容及T电梯修理作业考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理考试内容根据新T电梯修理考试大纲要求&#xff0c;安全生产模拟考试一点通将T电梯修理模拟考试试题进行汇编&#xff0c;组成一套T电梯修理全真模拟考试试题&#xff0c;学员可通过T电梯修理作业考试题库全真…...

2.vscode 配置python开发环境

vscode用着习惯了,也不想再装别的ide 1.安装vscode 这一步默认已完成 2.安装插件 搜索插件安装 3.选择调试器 Ctrl Shift P&#xff08;或F1&#xff09;&#xff0c;在打开的输入框中输入 Python: Select Interpreter 搜索&#xff0c;选择 Python 解析器 选择自己安…...

[蓝桥杯 2015 省 B] 生命之树

题目链接 [蓝桥杯 2015 省 B] 生命之树 题目描述 在 X 森林里&#xff0c;上帝创建了生命之树。 他给每棵树的每个节点&#xff08;叶子也称为一个节点&#xff09;上&#xff0c;都标了一个整数&#xff0c;代表这个点的和谐值。 上帝要在这棵树内选出一个节点集合 S S S&…...

为什么Hashtable不允许插入nuIl键和null值?

1、典型回答 浅层次的来回答这个问题的答案是&#xff0c;JDK 源码不支持 Hashtable 插入 value 值为 null&#xff0c;如以下 JDK 源码所示&#xff1a; 也就是 JDK 源码规定了&#xff0c;如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常。 并且看上面的 JDK …...

【WPF应用4】WPF界面对象编辑

简介 WPF&#xff08;Windows Presentation Foundation&#xff09;是.NET框架的一部分&#xff0c;它为开发人员提供了一个用于构建桌面应用程序用户界面的强大平台。WPF界面对象编辑是指在WPF应用程序中创建、设计和修改用户界面元素的过程。这些界面对象不仅包括基本的控件…...

js数组去重常见方法

简单数组 1、使用filter()方法&#xff1a;通过filter()方法遍历数组&#xff0c;返回仅包含首次出现的元素的新数组。 const arr [1, 2, 3, 4, 2, 3, 5]; const list arr.filter((item, index) > arr.indexOf(item) index); console.log(list); // [1, 2, 3, 4, 5]2、…...

【Java Web基础】一些网页设计基础(二)

文章目录 1. Bootstrap导航栏设计1.1 代码copy与删减效果1.2 居中属性与底色设置1.3 占不满问题分析1.4 字体颜色、字体大小、字体间距设置1.5 修改超链接hover颜色&#xff0c;网站首页字体颜色 1. Bootstrap导航栏设计 1.1 代码copy与删减效果 今天设计导航栏&#xff0c;直…...

python中tkinter计算器

本文使用创作助手。 以下是一个用Python的Tkinter库编写的简单计算器的示例代码&#xff1a; import tkinter as tkdef btn_click(btn_val):current_text entry.get()new_text current_text btn_valentry.delete(0, tk.END)entry.insert(tk.END, new_text)def calculate()…...

[嵌入式系统-39]:龙芯1B 开发学习套件 -9-PMON的文件结构

目录 前言&#xff1a; 一、PMON-V1.1 目录结构 二、Targets目录的组成 前言&#xff1a; 参考&#xff1a;​​​​​​龙芯相关 - 心映真的空间 一、PMON-V1.1 目录结构 PMON-V1.1 目录结构 pmon的目录结构大致如下&#xff08;由linux工具tree生成&#xff09; |-- Tar…...

[蓝桥杯2012] 罗马数字

罗马数字 题目描述 古罗马帝国开创了辉煌的人类文明&#xff0c;但他们的数字表示法的确有些繁琐&#xff0c;尤其在表示大数的时候&#xff0c;现在看起来简直不能忍受&#xff0c;所以在现代很少使用了。之所以这样&#xff0c;不是因为发明表示法的人的智力的问题&#xf…...

Thinkphp+workman+redis实现多进程异步任务处理

前言 PHP本身并不直接支持多线程编程&#xff0c;因为PHP的设计初衷是作为一个脚本语言&#xff0c;主要面向的是Web开发。不过我们可以使用一些扩展和库来实现多进程的功能&#xff0c;提高系统性能&#xff0c;比如workerman和swoole。通过多进程异步执行任务。 安装workman…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...

Java多线程实现之Runnable接口深度解析

Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...