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

变量、常量以及与其他语言的差异 - Go语言从入门到实战

知识点

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

利用单元测试来写代码段,保存之后会自动运行程序返回结果,可以快速实践得到反馈。

编写测试程序

接下来练习一下,怎么使用Go语言的变量和常量,在练习中体会与其他语言的差异。来自云尔Websites CSDN博客。

变量

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

  1. 赋值可以进行自动类型推断,无需显式地声明变量的类型,编译器可以根据赋给变量的值来推断其类型。
    例如:var a = 10  // 编译器会推断出 a 的类型为 int
    
  2. 在一个赋值语句中可以对多个变量进行同时赋值,通常被称为“多重赋值”。
    例如:a, b = 10, 20  // a 的值为 10,b 的值为 20
    

这些特性使得Go语言的代码更加简洁、紧凑,减少了冗余的类型声明,提高了代码的可读性。

实现Fibonacci数列:
package fibimport ("testing"
)
//实现数列1,1,2,3,5,8,13...
func TestFibList(t *testing.T) {// var a int = 1 //可以简写成 a := 1a := 1b := 1t.Log(a)	//单元测试里使用t.Log(a)打印for i := 0; i < 5; i++ {t.Log(" ", b)tmp := aa = bb = tmp + a}
}func TestExchange(t *testing.T) {a := 1b := 2// tmp := a// a = b// b = tmpa, b = b, a	//多重赋值,来自云尔Websites CSDN博客。t.Log(a, b)
}

常量

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

  1. 快速设置连续值,Go语言中的切片(slice)提供了方便的方式来快速设置连续值。这是Go语言与其他语言的一个显著区别,因为其他语言可能需要使用循环或其他复杂的方式来实现相同的功能。来自云尔Websites CSDN博客。
  2. 常量类型:在Go语言中,常量的类型是在声明时确定的,并且无法在运行时更改。
  3. 常量命名规则:Go语言要求常量名称以大写字母开头,后续字母可以小写。
  4. 常量可见性:在Go语言中,常量的可见性是通过包级别的作用域来控制的。
实现快速设置连续值
package constant_testimport "testing"const (Monday = 1 + iotaTuesdayWednesday
)const (Readable = 1 << iotaWritableExecutable
)func TestConstantTry(t *testing.T) {t.Log(Monday, Tuesday)//来自云尔Websites CSDN博客。
}func TestConstantTry1(t *testing.T) {a := 1 //0001t.Log(a&Readable == Readable, a&Writable == Writable, a&Executable == Executable)
}

学习Go语言主要是多练,多找些代码段写写,不懂可以私聊咨询。

欢迎关注云尔Websites CSDN博客

相关文章:

变量、常量以及与其他语言的差异 - Go语言从入门到实战

知识点 源码文件以_test结尾&#xff1a;xxx_test.go测试方法名以Test开头&#xff1a;func TestXXX(t *testing.T){…} 利用单元测试来写代码段&#xff0c;保存之后会自动运行程序返回结果&#xff0c;可以快速实践得到反馈。 编写测试程序 接下来练习一下&#xff0c;怎…...

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果&#xff0c;通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步&#xff1a; 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…...

云原生的简单理解

一、何谓云原生&#xff1f; 一种构建和运行应用软件的方法 应用程序从设计之初即考虑到云的环境&#xff0c;原生为云而设计&#xff0c;在云上以最佳姿势运行&#xff0c;充分利用和发挥云平台的弹性分布式优势。 二、包括以下四个要素 采用容器化部署&#xff1a;实现云平…...

AVL Cruise 2020.1 安装教程

文章目录 安装包安装破解 安装包 链接&#xff1a;https://pan.baidu.com/s/1GxbeDj_SyvKFyPeTsstvTQ?pwd6666 提取码&#xff1a;6666 安装 安装文件&#xff1a; 双击setup.exe&#xff1a; 一直netx&#xff0c;中间要修改两次路径&#xff0c;第一次是安装位置&#xf…...

数组07-滑动窗口、HashMap

LeetCode——904. 水果成篮 你正在探访一家农场&#xff0c;农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示&#xff0c;其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而&#xff0c;农场的主人设定了一些严格的规矩&#xff0c…...

【C++杂货店】类和对象(上)

【C杂货店】类和对象&#xff08;上&#xff09; 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储规则7.2 例题7.3结构体内存对齐规则 八、this指针8.2 t…...

K8S笔记

...

MySQL关于日期函数的使用-笔记

韩老师笔记 select current_time select CURRENT_DATE create table mes ( id int, content VARCHAR(255), send_time DATETIME ) select * from mes; insert into mes values(1,北京,CURRENT_DATE) insert into mes (id,send_time) values(2,CURRENT_TIME) insert into mes v…...

【postgresql 】 ERROR: “name“ is not supported as an alias

org.postgresql.util.PSQLException: ERROR: "name" is not supported as an alias 错误&#xff1a;不支持将“name”作为别名 SELECT real_name name FROM doc_user 加上 在关键词上加上 “” 示例&#xff1a; SELECT real_name "name" FROM do…...

都用HTTPS了,还能被查出浏览记录?

最近&#xff0c;群里一个刚入职的小伙因为用公司电脑访问奇怪的网站&#xff0c;被约谈了。他很困惑 —— 访问的都是HTTPS的网站&#xff0c;公司咋知道他访问了啥&#xff1f; 实际上&#xff0c;由于网络通信有很多层&#xff0c;即使加密通信&#xff0c;仍有很多途径暴露…...

vi配置文件.vimrc内容示例

1、.vimrc配置文件介绍 &#xff08;1&#xff09;.vimrc是vi编辑器的配置文件&#xff0c;里面可以对vi编译器做个性化配置&#xff1b; &#xff08;2&#xff09;.vimrc在用户目录下&#xff0c;每个用户有一个&#xff0c;类似于.bashrc文件&#xff0c;将下面的配置文件内…...

MacOS上的Pip和Python升级指南

在MacOS系统上&#xff0c;保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python&#xff0c;你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南&#xff0c;助你打造更强大的开发环境。…...

VB6.0实现修改EXE程序的图标

当你给一家公司做技术支持的时候&#xff0c;需求各种各样的&#xff0c;其中今天遇到就是要修改某个程序的图标&#xff0c;代码实现如下。 // q1016058890 群 214016721 //注 意&#xff1a;这个方法貌似只对有些EXE文件有效&#xff0c;这不是万能的方法&#xff0c;此…...

Python 编程基础 | 第二章-基础语法 | 2.3、for 语句

一、for 语句 1、循环语句 for循环的语法格式如下&#xff1a; for iterating_var in sequence:statements(s)例如&#xff1a; for ch in "hello world":print(ch)fruits ["banana", "apple", "mango"] for fruit in fruits:print(…...

linux下解决tomcat错误问题

错误一&#xff1a; Linux下Tomcat启动报错&#xff1a;Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 原因&#xff1a;可能是Linux环境变了&#xff0c;需要在catalina.sh文件里指定JDK路径 解决方式&#xff1a; 在/bin/catalina.sh配置文件中加…...

PMP证书的价值如何?

2022年开始&#xff0c;PMP考试启用了新考纲&#xff0c;不光考试内容进行了大刀阔斧的改革&#xff0c;出题方式也进行了更新。除原有的PMBOK6和PMBOK7主考教材外&#xff0c;还增加了一本《敏捷实践指南》。 别小看新加的这本书&#xff0c;它虽然与PMBOK代表的预测法属于完…...

linux上mysql数据备份(全量备份策略+增量备份策略)

执行备份策略前&#xff0c;先做好scp命令的准备 解决思路&#xff1a; 生成SSH公钥/私钥后&#xff0c;您需要将公钥添加到服务器上&#xff0c;从而使服务器可以使用该公钥来验证您的身份。 生成SSH公钥/私钥的命令为 ssh-keygen -t rsa -b 4096什么都不用输入&#xff0c…...

PHP实现DFA算法,查找关键词

# 添加关键词 到全局字典dict里面 protected function addWord($strWord) {$len mb_strlen($strWord,UTF-8);$curNode &$this->dict;for ($index 0; $index < $len; $index) {$word mb_substr($strWord, $index, 1, UTF-8);if (!isset($curNode[$word])) {$curNo…...

JTS:08 JTS图形相交

这里写目录标题 版本JTS disjoint intersects俩个图形不相交俩个图形 边相交俩个图形 内部相交俩个图形 点相交 版本 org.locationtech.jts:jts-core:1.19.0 链接: github JTS disjoint intersects 不相交的 九交模型FF*FF**** 相交的 九交模型 [T********] [*T*******] [**…...

深挖 ThreadLocal 底层原理?它有什么用?学会之后手撕面试官

目录 1. ThreadLocal 的主要功能&#xff1f; 2. ThreadLocal 代码举例 3. ThreadLocal 源码分析 3.1 ThreadLocal 的 get 方法源码解析 3.2 ThreadLocal 的 set 方法源码解析 3.3 ThreadLocal 的 createMap 方法源码解析 3.4 ThreadLocal 的 set 方法总结 4. 为什么En…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!

多连接 BLE 怎么设计服务不会乱&#xff1f;分层思维来救场&#xff01; 作者按&#xff1a; 你是不是也遇到过 BLE 多连接时&#xff0c;调试现场像网吧“掉线风暴”&#xff1f; 温度传感器连上了&#xff0c;心率带丢了&#xff1b;一边 OTA 更新&#xff0c;一边通知卡壳。…...

篇章一 论坛系统——前置知识

目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...

VASP软件在第一性原理计算中的应用-测试GO

VASP软件在第一性原理计算中的应用 VASP是由维也纳大学Hafner小组开发的一款功能强大的第一性原理计算软件&#xff0c;广泛应用于材料科学、凝聚态物理、化学和纳米技术等领域。 VASP的核心功能与应用 1. 电子结构计算 VASP最突出的功能是进行高精度的电子结构计算&#xff…...

记一次spark在docker本地启动报错

1&#xff0c;背景 在docker中部署spark服务和调用spark服务的微服务&#xff0c;微服务之间通过fegin调用 2&#xff0c;问题&#xff0c;docker容器中服务器来后&#xff0c;注册中心都有&#xff0c;调用服务也正常&#xff0c;但是调用spark启动任务后报错&#xff0c;报错…...