GO语言核心30讲 笔记

server/2024/9/23 9:11:00/

原站地址: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.ppmy.cn/server/21617.html

相关文章

ES5、ES6类的定义

ES5定义类 1、类名首字母一般都是大写 2、可以当成普通函数调用,但一般都通过new关键字调用,通过关键字调用会生成一个新的对象 3、通过new关键字创建的对象,给当前的this绑定成新创建的对象 4、给当前类定义一个方法,通常绑定在…

代码随想录35期Day24-Java

Day24 回溯算法 LeetCode77.组合&#xff1a;给出1-n之间每k个数的所有组合 核心思想&#xff1a;回溯&#xff0c;维护一个当前的元素集。注意结束条件 class Solution {// path存放当前元素List<Integer> path new ArrayList<>();// 结果集resList<List&l…

拉普拉斯分布(Laplace Distribution)

Laplace Distribution 是尖峰长尾分布&#xff0c;其密度函数为&#xff1a; p ( x ∣ μ , b ) 1 2 b e − ∣ x − μ ∣ b p(x|\mu,b) \frac{1}{2b}e^{-\frac{|x-\mu|}{b}} p(x∣μ,b)2b1​e−b∣x−μ∣​ 其期望为 μ \mu μ。方差为 2 b 2 2b^2 2b2。在英伟达论文Prod…

JAVAEE—HTTPS和ssl证书

0[toc] 什么是HTTPS HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况而HTTPS则是新采用加密的方式进行传输 为什么需要HTTPS 为什么要使用HTTPS呢&#xff1f;这…

Android Monkey工具介绍与使用

过于爽快的承认失败&#xff0c;就可能发觉不了曾经与正确非常接近。大家好&#xff0c;依旧是在翻看旧文档的时候&#xff0c;发现一篇关于Monkey的介绍和使用&#xff0c;Monkey这款工具在软件测试中主要用于进行压力测试和稳定性测试。它可以模拟大量随机的用户操作&#xf…

【Docker】docker部署lnmp和wordpress网站

环境准备 docker&#xff1a;192.168.67.30 虚拟机&#xff1a;4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…

Android Room使用模板

1&#xff0c;引入依赖 plugins {id kotlin-kapt } dependencies {implementation "androidx.room:room-runtime:2.4.2"kapt "androidx.room:room-compiler:2.4.2" } 2&#xff0c;标记实体类 import androidx.room.Entity import androidx.room.PrimaryKe…

Golang特殊init函数

介绍 init()函数是一个特殊的函数&#xff0c;存在一下特性 不能被其它函数调用&#xff0c;而是子main()函数之前自动调用不能作为参数传入不能有传入参数和返回值 作用&#xff1a; 对变量进行初始化检查/修复程序状态注册运行一次计算 以下是<<the way to go>>…