GO语言核心30讲 基础知识

原站地址:Go语言核心36讲_Golang_Go语言-极客时间

1. 两种声明变量方式的差异:

    短变量声明 name := "abc" 只能在函数体内部使用。

    var name = "abc" 这方式才可以用在所有地方。

2. 类型推断有什么好处? 代码重构时更方便,只要修改一处定义数据类型的代码,其他位置的数据类型都会自动推断。

3. 变量的重声明是什么?有什么好处? 

var err error
n, err := io.WriteString(os.Stdout, "Hello, everyone!\n")

 err 被声明了两次,这就是重声明。好处是可以重复使用同一个变量名,拷贝代码方便。

4. 重声明 有什么限制条件?

(1) 再次声明时的数据类型不能改变。

(2) 需要使用短变量声明。

(3) 声明并赋值的变量必须有多个,并且至少要有一个是新的变量

5. 具有嵌套关系的不同代码块间,存在重名的变量

(1) 可以编译通过,内层代码块中,会使用内层的变量,屏蔽掉外层的。

(2) 内层和外层的变量是两个独立的变量,所以可以数据类型不同。它们只是名字相同。

(3) 代码运行是,查找变量的顺序是,从内部往外部。

var block = "package"
func main() { block := "function" { block := "inner" } 
}

6. 类型转换: value := []string(变量x)。需要主义的几点:

(1) 整数值、常量之间的类型转换,只要源值在目标类型的可表示范围内就是合法的。

(2) 把整数值转换为string类型是可行的,被转换的整数值需要是有效的 Unicode 代码点,否则转换的结果将会是"�"乱码

(3) string类型向[]byte类型转换,代表着以 UTF-8 编码的字符串会被拆分成字节。

7. 如何正确判断变量的类型:  value, ok := interface{}(变量x).([]string)

    如果类型不匹配的话,ok的值是false。  ok 如果没有的话,当类型不匹配时,会触发panic

8. 声明别名类型的两种方式: 

(1) type MyString = string, 两者完全相等

(2) type MyString2 string (没有等号),两者不同,是两个类型。

     MyString2 和 string 可以进行类型转换,但 []MyString2与[]string 就不能进行类型转换。

9. byte是uint8的别名类型,而rune是int32的别名类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4973.shtml

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

相关文章

meterpreter运行run getgui -e报错

meterpreter运行run getgui -e报错 meterpreter > run getgui -e [!] Meterpreter scripts are deprecated. Try post/windows/manage/enable_rdp. [!] Example: run post/windows/manage/enable_rdp OPTIONvalue [...] [-] The specified meterpreter session script cou…

【C++第三阶段】list容器排序

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 构造函数赋值和交换大小操作插入和删除数据存取反转和排序排序案例 list容器在STL中是双向循环链表。 如图所示,每一个节点三个域,前向指针域,后…

用户中心(上)

文章目录 企业做项目流程需求分析技术选型计划初始化项目数据库设计登录/注册⽤户管理(仅管理员可⻅) 初始化项目⼀、前端初始化1.下载nodejs2.Ant Design Pro相关问题1.前端项目启动时报错、无法启动?2.如何初始化前端项目?为什么…

vue 模板字符串

1.模板字符串换行问题 white-space: pre-wrap; 2. 鼠标移入 显示提示框 点击手动隐藏 myChart.on("mouseover", function (params) {myChart.dispatchAction({type: "downplay",}); }); tooltip: {show: true, //是否显示提示框组件,包括…

机器人实验室CNRS-AIST JRL, IRL介绍

一、背景 作为搞机器人方向的学生,必须时常关注国际上顶尖实验室的研究成果,以免自己做的方向out,除了大家耳熟能详的Boston Dynamics,还有许多非常厉害的机器人实验室值得我们关注,如日本的CNRS-AIST JRL, IRL实验室…

spring cache(一)介绍

一、介绍 1、背景 项目中使用最多的缓存技术就是Redis,用Redis就可以实现了,为什么需要使用spring cache? 先看下我们使用缓存步骤: (1)查寻缓存中是否存在数据,如果存在则直接返回结果 (2&#xff09…

虚函数表与虚函数表指针

虚函数表与虚函数表是用来实现多态的,每一个类只有一个虚函数表 静态多态:函数重载(编译期确定) 动态多态:虚函数(运行期确定) 虚函数表的创建时机: 生成时间: 编译期…

【k8s】(九)kubernetes1.29.4离线部署之-Token过期后加入节点

(一)kubernetes1.29.4离线部署之-安装文件准备 (二)kubernetes1.29.4离线部署之-镜像文件准备 (三)kubernetes1.29.4离线部署之-环境初始化 (四)kubernetes1.29.4离线部署之-组件安装…

生活服务推出品牌实惠团购,覆盖五一假期“吃喝玩乐”多场景

4月26日,抖音生活服务平台上线“跟着大牌过五一”活动会场,携手22家连锁品牌商家,于“五一”前推出优价团购和时令新品,覆盖“吃喝玩乐”多重购物需求,助力假期消费。同时,伴随各地涌现的文旅热潮&#xff…

SAP-ABAP-创建数据元素-02

事物码:SE11 三种数据对象,此处选择‘数据元素’ 基本类型:可以使用预定义或者域,下面一预定义为例,维护数据类型CHAR和长度10 点击字段标签,维护长度和描述, 激活,那么这个数据元素…

JavaSE-14笔记【反射机制(+2024新)】

文章目录 1.反射机制概述2.获取Class的四种方式3.通过反射机制实例化对象*4.反射机制结合配置文件灵活实例化对象*5.java.lang.reflect.Field5.1反编译类中的所有字段/属性5.2 通过反射机制给属性赋值* 6.java.lang.reflect.Method6.1反编译类中的所有方法6.2 通过反射机制调用…

变革 Perplexica:AI驱动的问答搜索引擎

Perplexica是一个开源的人工智能搜索工具,也可以说是一款人工智能搜索引擎,它深入互联网以找到答案。受Perplexity AI启发,它是一个开源选择,不仅可以搜索网络,还能理解您的问题。它使用先进的机器学习算法&#xff0c…

什么是环比折年率

环比折年率是月度(或季度)统计中一个十分重要的统计指标,由环比增速推算得到,用于反映经济的发展速度与趋势变化。环比折年率与同比增速相比具有对趋势变化灵敏度高的优点,在统计分析、趋势预测等领域有着广泛应用。 …

Docker-容器的前世今生

文章目录 Docker为什么产生?硬件虚拟化硬件虚拟化解决的问题硬件虚拟化定义硬件虚拟化技术虚拟机的优点虚拟机的缺点 操作系统虚拟化即容器容器化解决的问题容器化定义容器化技术历史 容器和虚拟机对比 Docker的发展历史Docker架构客户端服务端仓库Registry Docker重…

Docker 容器创建与使用问题汇总

目录 常用命令 Docker 18.09 Error response from daemon: Container is not running unknown flag: --gpus CUDA error: "cudaSetDevice(device_)" Docker 19.03 容器创建时指定GPU,执行 nvidia-smi 命令只显示指定的显卡 容器创建时指定GPU&…

K8S安装网络插件flannel问题修复(cni plugin not initialized)

K8S安装网络插件问题修复 卸载flannel网络步骤: #第一步,在master节点删除flannel kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl delete -f kube-flannel.yml #第二步&#xff…

Linux工具篇 之 vim概念 操作 及基础指令讲解

学校不大 创造神话 讲桌两旁 陨落的王 临时抱佛脚 佛踹我一脚 书山有路勤为径 游戏玩的很起劲 想要计算机学的好,我的博客列表是个宝 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀…

八大元素定位方法

四、元素定位4.1 为什么要使用元素定位?要使用web自动化操作元素,必须首先找到此元素。4.2 定位工具火狐:Firebug (F12获取直接点击 Friebug图标)谷歌:F12键(开发者工具)4.3 定位元素时依赖于什么&#xff…

这份详细的智慧校园建设方案,赶紧收藏

高等教育信息化是促进高等教育改革创新和提高质量的有效途径,是教育信息化发展的创新前沿。进一步加强基础设施和信息资源建设,重点推进信息技术与高等教育的深度融合,能促进教育内容、教学手段和方法现代化,创新人才培养、科研组…

渗透之sql注入---实战1

本期的sql注入实战在:BUUCTF在线评测 (buuoj.cn) 该网站上进行。 启动靶机: 1.进来后搜索web1 2.点击【SWPU2019】Web1启动靶机。 3.进来之后在此界面进行注入。 开始注入: 1.找注入点: 我们输入1 后查看广告详情发现报错&a…