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

Go官方指南(一)包、变量、函数

import "time"

获取当前系统时间:time.Now()  

每个 Go 程序都是由包构成的

按照约定 ,包名与导入路径的最后一个元素一致。例如,"math/rand"包中的源码均以 package rand 语句开始

在 Go 中,如果一个名字以大写字母开头,那么它就是已导出的。例如Pizza 就是一个已导出名,Pi 也同样,它导出自 math 包

package mainimport "fmt"func add(x, y int) int {return x + y
}func main() {fmt.Println(add(42, 13))
}
/*
当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。在本例中,x int, y int
被缩写为x, y int
*/

package mainimport "fmt"func swap(x, y string) (string, string) {return y, x
}func main() {a, b := swap("hello", "world")fmt.Println(a, b)
}/*
多值返回
函数可以返回任意数量的返回值。swap 函数返回了两个字符串。
*/

短变量声明

在函数中,简洁赋值语句 := 可在类型明确的地方代替 var 声明。

函数外的每个语句都必须以关键字开始(varfunc 等等),因此 := 结构不能在函数外使用。

package mainimport "fmt"func main() {var i, j int = 1, 2k := 3c, python, java := true, false, "no!"fmt.Println(i, j, k, c, python, java)
}

类型转换

表达式 T(v) 将值 v 转换为类型 T

一些关于数值的转换:

var i int = 42
var f float64 = float64(i)
var u uint = uint(f)

或者,更加简单的形式:

i := 42
f := float64(i)
u := uint(f)

类型推导

在声明一个变量而不指定其类型时(即使用不带类型的 := 语法或 var = 表达式语法),变量的类型由右值推导得出。

当右值声明了类型时,新变量的类型与其相同:

var i int
j := i // j 也是一个 int

不过当右边包含未指明类型的数值常量时,新变量的类型就可能是 intfloat64 或 complex128 了,这取决于常量的精度:

i := 42           // int
f := 3.142        // float64
g := 0.867 + 0.5i // complex128

尝试修改示例代码中 v 的初始值,并观察它是如何影响类型的。

package mainimport "fmt"func main() {v := 42.0 // 修改这里!fmt.Printf("v is of type %T\n", v)
}

常量

常量的声明与变量类似,只不过是使用 const 关键字。

常量可以是字符、字符串、布尔值或数值。

常量不能用 := 语法声明。

package mainimport "fmt"const Pi = 3.14func main() {const World = "世界"fmt.Println("Hello", World)fmt.Println("Happy", Pi, "Day")const Truth = truefmt.Println("Go rules?", Truth)
}

数值常量

数值常量是高精度的 

一个未指定类型的常量由上下文来决定其类型。

再尝试一下输出 needInt(Big) 吧。

int 类型最大可以存储一个 64 位的整数,有时会更小。)

int 可以存放最大64位的整数,根据平台不同有时会更少。)

package mainimport "fmt"const (// 将 1 左移 100 位来创建一个非常大的数字// 即这个数的二进制是 1 后面跟着 100 个 0Big = 1 << 100// 再往右移 99 位,即 Small = 1 << 1,或者说 Small = 2Small = Big >> 99
)func needInt(x int) int { return x*10 + 1 }
func needFloat(x float64) float64 {return x * 0.1
}func main() {fmt.Println(needInt(Small))fmt.Println(needFloat(Small))fmt.Println(needFloat(Big))
}

相关文章:

Go官方指南(一)包、变量、函数

import "time" 获取当前系统时间&#xff1a;time.Now() 每个 Go 程序都是由包构成的 按照约定 &#xff0c;包名与导入路径的最后一个元素一致。例如&#xff0c;"math/rand"包中的源码均以 package rand 语句开始 在 Go 中&#xff0c;如果一个名字以…...

liunx笔记

快捷键 #移动到行首 ctrla #移动到行尾 ctrle #删除光标之前的字符 ctrlu #删除光标之后的字符 ctrlk #清屏 ctrll正则表达式 正则中普通常用的元字符 元字符功能.匹配除了换行符以外的任意单个字符*前导字符出现0次或连续多次.*任意长度字符^行首(以…开头)&#xff0c;如…...

vue3 封装ECharts组件

一、前言 前端开发需要经常使用ECharts图表渲染数据信息&#xff0c;在一个项目中我们经常需要使用多个图表&#xff0c;选择封装ECharts组件复用的方式可以减少代码量&#xff0c;增加开发效率。 ECharts图表大家应该用的都比较多&#xff0c;基础的用法就不细说了&#xff…...

Spring Security 6.0系列【30】授权服务器篇之JOSE规范

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 前言2. JOSE 规范3. JW…...

维度表设计原则

维度的作用一般是查询约束、分类汇总以及排序等&#xff0c;我们在进行维度表设计时&#xff0c;应当提前考虑&#xff1a; &#xff08;1&#xff09;维度属性尽量丰富&#xff0c;为数据使用打下基础 比如淘宝商品维度有近百个维度属性&#xff0c;为下游的数据统计、分析、…...

【requests模块上】——02爬虫基础——如桃花来

目录索引 requests请求&#xff1a;1. 基于get请求&#xff1a;*基础写法&#xff1a;**带参数的get请求&#xff1a;* 2. 基于post请求&#xff1a; 获取数据&#xff1a;1. 获取json数据&#xff1a;2. 获取二进制数据&#xff1a; 初步伪装小爬虫——添加headers: 引入&…...

Springboot +Flowable,详细解释啥叫流程实例(一)

一.简介 上一篇中学习了Flowable 中的流程模板&#xff08;流程定义&#xff09;的部署问题&#xff0c;这一篇来学习什么叫流程实例。 部署之后的流程模板&#xff0c;还不能直接运行&#xff0c;例如我们部署了一个请假流程&#xff0c;现在 张三想要请假&#xff0c;他就需…...

信息安全复习十:Web与电子商务安全

一、章节梗概 1.信息安全的学科内容 2.Web和电子商务安全问题提出 3.安全套接字协议SSL与传输层安全协议TLS 4.安全电子交易(SET)简要介绍 复习&#xff1a; 密码学内容&#xff1a;对称密钥密码、公开密钥密码、报文鉴别 PKI&#xff1a;数字签名、数字证书、信任关系 身份认…...

flutter 启动其他app server或者页面失败

1.目标Service 设置 android:exported"true" 2.目标Service需要声明自定义权限。客户端需要声明权限。 3.目标Service需要添加<intent-filter></intent-filter> 检查以上的声明和权限&#xff0c; 如果还是不行 说明是 Android 11引入了*包可见性*’ …...

【linux-进程2】进程控制

&#x1f308;环境变量 &#x1f344;初识 系统带的命令可以直接运行&#xff08;ls ll命令等&#xff09;&#xff0c;但是我们自己写的命令必须要带上路径才能运行&#xff08;./myproc&#xff09;&#xff0c;这是什么原因导致的&#xff1f;如果我们也想自己写的命令直接…...

【五一创作】多域名环境和Office 365混合部署方案

目录 一、多域名环境是什么? 二、Office 365是什么? 三、多域名环境与Office 365的结合 总结 一、多域名环境是什么? 多域名环境指的是一个企业拥有多个域名,这些域名可能隶属于不同的子公司、部门或者品牌,但是都归属于同一个母公司。例如,一个中国电信集团旗下有…...

Vue:路由route

一、概念 1、组成 每一个路由都由 key 和 value 组成。 keyvalue路由 route。 2、本质 路由的本质&#xff1a;一个路由表达了一组对应关系。路由器的本质&#xff1a;管理多组对应关系。 3、路由的工作原理 点击之后路径变化——>路由器监视到变化——>根据路径…...

Windows系统被faust勒索病毒攻击勒索病毒解密服务器与数据库解密恢复

在近期&#xff0c;一种名为faust后缀的勒索病毒威胁已经引起了全球计算机系统安全领域的关注。faust勒索病毒是一种基于RSA加密算法的恶意软件&#xff0c;能够加密目标计算机系统上的所有文件&#xff0c;并向用户勒索赎金来承诺解密恢复操作。下面为大家介绍一下Windows系统…...

Java面试题总结 | Java面试题总结7- Redis模块(持续更新)

Redis 文章目录 Redisredis的线程模型Redis的Mysql的区别Redis和传统的关系型数据库有什么不同&#xff1f;Redis常见的数据结构zset数据结构Redis中rehash过程redis为什么不考虑线程安全的问题呢Redis单线程为什么还能这么快&#xff1f;为什么Redis是单线程的&#xff1f;red…...

虹科案例 | 如何通过智能、非接触式测量解决方案,提高起重机的安全和效率?

PART 1 案例详情 自建造初期以来&#xff0c;起重机行业已经走了很长一段路。技术的使用在行业进步中发挥了重要作用&#xff0c;降低了使用桥式起重机的危险性。特别是&#xff0c;智能、非接触式测量解决方案通过使用高架升降机更安全、更高效、更高效&#xff0c;为行业的进…...

流程图拖拽视觉编程-流程编辑器

目录 一、简介 二、流程编辑器-视图实现 三、参考资料 一、简介 前期文章&#xff1a; 流程图拖拽视觉编程--概述_Jason~shen的博客-CSDN博客 本期内容&#xff1a; 本期将介绍流程编辑器模块的实现方法&#xff0c;效果图如下所示。该模块基于QT Graphics/View实现&…...

6.hashcode与equals区别与联系

1.hashCode介绍 hashCode() 的作用是获取哈希码&#xff0c;也称为散列码;它实际上是返回一个int整数。 这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中&#xff0c;这就意味着Java中的任何类都包含有hashCode() 函数。 2.equals介…...

智能家居“落地者”:三翼鸟用场景方案持续链接大众消费

互联网分析沙龙(techxue)原创 作者 &#xff5c; 锡海 编辑 &#xff5c; 七喜 从上海车展再到AWE2023展会&#xff0c;只要有大型活动的地方&#xff0c;都能看到人潮汹涌的景象&#xff0c;久违的烟火气又回来了。数据显示&#xff0c;社会消费已出现较为强劲反弹&#xff0…...

【MATLAB图像处理实用案例详解(12)】——利用BP神经网络实现图像压缩

目录 一、图像压缩二、BP神经网络实现图像压缩原理三、算法步骤3.1 图像块划分3.2 归一化3.3 建立BP神经网络3.4 保存结果 四、效果演示 一、图像压缩 常见的文件压缩软件如WinZip、WinRAR等采用的是无损压缩&#xff0c;能够完全恢复原文件内容。多媒体信息具有信息量大、冗余…...

java学习之枚举

目录 一、枚举引出 二、分析问题 三、 解决方案-枚举 四、枚举的二种实现方式 五、应用案例 六、小结 一、枚举引出 package enum_;public class Enumeration01 {public static void main(String[] args) {Season spring new Season("春天", "温暖")…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...