- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 Golang new和make有啥区别?
对比newfunc new(Type) *Typevalue_bool := new(bool) // falsevalue_int32 := new(int32) // 0value_float32 := new(float32) // 0.0value_string := new(string) // ""可以看到,对于new,会创建每个类型所对应的零值。但还要注意的是,new会返回一个指针,所以在访问数据之前,需要先将其解引用。makefunc make(Type
2020-10-05 18:58:38 401
原创 Golang defer的一个坑
试着猜一下:下面这个例子的运行结果是什么?package mainimport "fmt"func main() { fmt.Println(test_function())}func test_function() (value int) { defer func() { value++ }() return 0}虽然在返回前defer就把value的值修改了,但是defer执行完后执行的是return,所以返回的应该还是0?让我们看下输出1WT.
2020-10-05 18:58:23 123
原创 Golang 并发里的WaitGroup
package mainimport ( "fmt" "time")func main() { var x int go func() { x = (x + 8) * 9 }() time.Sleep(2 * time.Second) fmt.Println(x)}72在上面的代码中,我们声明了一个变量,并开启了一个goroutine(协程),协程会对变量的值进行修改。但是我们为了防止提前退出,特意睡眠(sleep)了两秒。最后我们打印修改后变量的值。通道(.
2020-10-05 18:58:09 487
原创 Golang 错误处理
FBI WRINING文章会牵扯到接口部分的内容,没有接触过的读者建议先去学习。定义在go中,错误被定义成一个接口(interface)type error interface { Error() string}使用最简单的使用错误的方法就是用函数创建一个错误简易版本package mainimport ( "errors" "fmt")func main() { value := false text, err := isu(value)
2020-08-25 16:48:17 302 3
原创 Golang defer
引入不多说,上代码package mainimport "fmt"func main() { fmt.Println("a") defer func() { fmt.Println("d") fmt.Println("e") }() defer fmt.Println("c") defer fmt.Println("b")}运行结果abcde解析只看上面的内容可能很难理解,但其实defer就是在函数即将返回时执行其后面的语句。但是这任然不能解释上面内容的
2020-08-23 18:43:14 165 2
转载 MSYS2搭建C语言开发环境
最近心血来潮想体验用vim写代码的感觉, 但是vim本身并不支持windows, 必须用虚拟机或类linux的环境啥的. 因为本人电脑配置过于垃圾, 所以选了类linux环境, 于是便有了本篇教程不过在开始教程之前要强调的是: 本文仅搭建最基本的环境(MSYS2+vim+gcc), 并且也仅简单介绍三者用法, 需要详细的请自行搜索相关教程首先下载MSYS2, 下载地址:http...
2020-03-13 17:45:59 1297 1
转载 C语言真的存在"趋向于运算符"吗?
在某乎看到有人说C语言有个非常鲜为人知的运算符--趋向于运算符差不多就是下面这样:#include<stdio.h>int main(void){ int conut = 10; while (conut --> 0) //注意这里是两个短横线, 并非指针型的成员操作符 { printf("conut = %d\n", c...
2020-03-11 18:31:58 2301 1
XProcess Dll Library 1.2
2023-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人