Go_初始化是否为nil
package main import (
"fmt"
) func main() { //基本数据类型(默认值)
//如果是java,报错,变量未初始化
var a int
fmt.Println(a) //0
a = 100
fmt.Println(a) //100 //数组(零)
//数组是数据结构
var arr [5]int
fmt.Println(arr) //[0 0 0 0 0]
arr[0] = 1000
fmt.Println(arr) //[1000 0 0 0 0] //切片(空)
//切片是数据结构
var slice []int
fmt.Println(slice) //[] //没有初始化,它也是有底层数组的
//slice[0] = 100 //runtime error: index out of range [0] with length 0
fmt.Println(slice)
slice = []int{1, 2, 3, 4, 5}
fmt.Println(slice) //[1 2 3 4 5] //结构体(默认值)
type Student struct{
Name string
Age int
}
var s Student
fmt.Println("s-->", s) //s--> { 0} //map(nil)
var map1 map[int]int
fmt.Println(map1) //map[]
//map1[10] = 100 //panic: assignment to entry in nil map
//fmt.Println(map1)
map2 := make(map[int]int)
fmt.Println(map2) //map[]
map2[100] = 1000
fmt.Println(map2) //map[100:1000]
i, ok := map2[100] //这个OK也可以不写
fmt.Println(i, ok) //管道(nil)
var c chan int
fmt.Println(c) //<nil>
c2 := make(chan int)
fmt.Println(c2) //0xc000054060
go func() { //不能写在写数据的下面,会发生deadlock,必须有先有消费者,才有生产者
for n := 0; n < 10; n++ {
//i := <-c2
//fmt.Println(i)
v, ok := <-c2 //OK可以不写
fmt.Println(v, ok)
}
}()
for n := 0; n < 10; n++ {
c2 <- n
} }
Go_初始化是否为nil的更多相关文章
- Swift - 初始化方法返回nil表示初始化失败
自Swift1.1开始,初始化init方法便有返回nil的能力.我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil. 比如,给Int类添加一个将字符串初始化成 ...
- Swift中类的初始化器与继承
初始化是类,结构体和枚举类型实例化的准备阶段.这个阶段设置这个实例存储的属性的初始化数值和做一些使用实例之前的准备以及必须要做的其他一些设置工作. 通过定义构造器(initializers)实现这个实 ...
- swift-可选值
swift的nil和OC有些不一样,OC只有对象可以用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift可以没有初始值的,产生了可选值Optional. 定义可选值 ...
- objective-c 语法快速过(4)
oc 里的字符串 字符串的快速创建(最简单的方法) NSStirng *str = @“Hello”;//oc的字符串都是@“”形式的 oc的字符串也是类的对象,是NSString类的对象,创建没有那 ...
- iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)
[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright ...
- Object c 基础知识
文件类型说明:.h 头文件,用于定义类.实例变量及类中的方法等定义信息(interface)..m 源文件,定义方法体,可实现objce-c和c方法(implementation)..mm c++源文 ...
- swift:Optional Type 、Swift和Objective-C混编的讲解
❤️❤️❤️swift中的Optional Type的?和!含义:其实就是一个装包和拆包的过程 optional的含义: Optional事实上是一个枚举类型,Optional包含None和Some两 ...
- Swift 可选值(Optional Values)介绍
Optional的定义 Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil.此 ...
- Delphi 7 升级到 Delphi 2010 总结
1 字符串 >>string =unicodeString 字母的处理要定义AnsiString了 >>PChar =PWidechar >>str='普通汉字' ...
随机推荐
- PHP0013:PHP操作文件案例 遍历phpdamin目录
- react引入ggEditor流程图
遇到的问题 1.propsAPI获取不到内容:withPropsAPI包裹的组件必须是GGEditor的子组件. 2.自定义组件如何使用:正确的办法是通过config配置,参照上面的代码(之前我在在内 ...
- 生成指定规模大小的redis cluster对关系
需求: 指定一批ip列表,生成指定规模大小的redis cluster主从对应关系. ip_list=(1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5) port=70 ...
- KindEditor配置和使用
1下载kindeditor包,目前最新版本是kindeditor-3.5.5.下载地址:http://www.kindsoft.net/ 2.解压之后,解压目录kindeditor如下图所示. 3.开 ...
- linux安装Nginx 以及 keepalived 管理Nginx
linux安装Nginx 1.1将Nginx素材内容上传到/usr/local目录(pcre,zlib,openssl,nginx)(注意:必须登录用对这个文件具有操作权限的) 1.2安装pcre库 ...
- Windows电脑常用快捷键
Windows 徽标键键盘快捷方式: Windows 徽标键 打开或关闭“开始”屏幕 Windows 徽标键 + A 打开操作中心 Windows 徽标键 + B ...
- P1527 [国家集训队]矩阵乘法 [整体二分]
权值排序,整体二分,没了. // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y ...
- (jsp+servlet+javabean )MVC架构
MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...
- UVA11732(Trie树)
鸣谢https://blog.csdn.net/Baoli1008/article/details/4441936,基本都是抄的代码 #pragma GCC optimize(2) #include ...
- Dubbo之服务消费
Dubbo的服务消费主要包括两个部分.第一大步是ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例,这是服务消息的关键.第二大步是把Invoker ...