Go语言中文网 为您找到相关结果 16

Golang的语法糖

Golang的语法糖 ... Go语言函数中有三个点 ... 表示为可变参数,这是Go的糖衣语法,表示可以接受任意个数但相同类型的参数。 func print(values...string) { //可以接受任意个string参数 for _, v:= range values{ fmt.Println("---> ",v) } } func main(){ values := []string{"abc", "def", "hig", "klm",} print(values...) } := := 是Go的赋值与声明语法糖,它的功能是声明、赋值和类型推断。 //第一种方法 var number1 number2 number3 int number1, number2, number3...阅读全文

博文 2018-07-11 23:34:49 freelang

《Go语言编程》[4.4 并发通信]代码thread.c和thread.go错误

thread.c程序pthread_create函数第三个参数为线程函数的起始地址,文中并无add函数,源代码如下: thread.c编译时会报未声明错误: 根据语境推测应该是count,替换如下: 重新编译,gcc编译时在最后加参数-lpthread,否则编译报对 pthread_create和pthread_join未定义的引用如下: 应当是行末最后加入-lpthread编译,正确编译命令: gcc -lpthread thread.c -o main thread.go程序无z变量,应当是counter: 本文出自 “松松” 博客,请务必保留此出处http://dongsong.blog.51cto.com/916653/159561...阅读全文

博文 2014-12-25 08:00:01 董松

golang的excel文件处理

引入excel文件处理包 "github.com/tealeg/xlsx" 直接excel文件进行处理 excel文件导入: import "github.com/tealeg/xlsx" //获取文件 file, h, err := this.GetFile("Filename") if err != nil { response.Msg = fmt.Sprintf("获取文件异常:%s", err.Error()) this.toJson(&response) } defer file.Close() //校验文件后缀 if !strings.HasSuffix(h.Filename, ".xlsx") { response.Msg = "文件格式异常" this.toJson(resp...阅读全文

博文 2019-07-05 19:32:38 进击的扣子

《Go语言四十二章经》第四章 常量

《Go语言四十二章经》第四章 常量 作者:李骁 ## 4.1 常量以及iota 常量使用关键字 const 定义,用于存储不会改变的数据。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式:const identifier [type] = value,例如: ```go const Pi = 3.14159 ``` 在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量(常量)的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型定义: const b = "abc" 一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据...阅读全文

OC信号量的基本使用

信号量 dispatch_semaphore_create(long value); value: 信号量的起始值。 传递小于零的值将导致返回NULL。 des: 当两个线程需要协调特定事件的完成时,为值传递零是有用的。 传递大于零的值对于管理有限的资源池非常有用,其中池大小等于该值。 returned: 新创建的信号量,或失败时为NULL。 dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout); desema: 信号量。 在此参数中传递NULL的结果是未定义的。 timeout: 何时超时(请参阅dispatch_time)。 为方便起见,有DISPATCH_TIME_NOW和DISPATC...阅读全文

博文 2019-05-24 17:34:41 Nonsense_biubiu

go语言坑之并发访问map

go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典、哈希表。借助map,可以定义一个键和值,然后可以从map中获取、设置和删除这个值,尤其适合数据查找的场景。但是map的使用有一定的限制,如果是在单个协程中读写map,那么不会存在什么问题,如果是多个协程并发访问一个map,有可能会导致程序退出,并打印下面错误信息: fatal error: concurrent map read and map write 上面的这个错误不是每次都会遇到的,如果并发访问的协程数不大,遇到的可能性就更小了。例如下面的程序: package main func main() { Map := make(map[int]int) for i := 0; i < 10; i++ { go wri...阅读全文

博文 2017-04-24 12:54:10 songleo

又特么一编程语言开源上线了,真的是学不动了

就在 6 月 24 号的时候,一种开源的名为 V 的新的静态类型编程语言,正式开源了,并发布了首个可用版本,当前开源的版本是 0.0.12 。一经开源,就在 Github 上引起了大量的关注,star 数也是嗖嗖上升。那么什么是 V 语言呢?相信大家对 Golang ,也就是 go 语言都有所耳闻,甚至熟悉吧?而 V 语言的名字比 Go 语言还简洁,少一个字母叫:V ,全名叫:vlang 。它被描述为一种简单,快速,编译的语言,用于创建可维护的软件。它的创造者 Alex Medvednikov 表示它与 Go 非常相似,并受到 Oberon,Rust 和 Swift 的启发。其提供了方便、快捷、安全的编程语言和工具包,还能够很好地服务于区块链技术。V 语言多牛逼?据说 V 语言将来每秒可以编...阅读全文

如何理解 golang nil

golang 中的 nil 是不同于其他语言的,为了更好的理解 nil,在此我将尝试一步一步揭示 nil 在 golang 中的一些操作和现象。 1. nil 是不能比较的code-1 Play 123456789package mainimport ( "fmt")func main() { fmt.Println(nil==nil)} code-1 输出 1tmp/sandbox318449491/main.go:8: invalid operation: nil == nil (operator == not defined on nil) 这点和 python 等动态语言是不同的,在 python 中,两个 None 值永远相等。 123>>> None == NoneTrue>>>...阅读全文

博文 2017-07-28 13:11:56 三月沙

Golang重要特征之init函数

go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性 inti函数主要特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 2 每个包可以拥有多个init函数 3 包的每个源文件也可以拥有多个init函数 4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) 5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序 6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用 下面的两个go文件演示了: 一个package或者是go文件可以包含多个init函数 init函数是在main函数之前执行的 init函数被自动调用,不能在其他函数中调用,显式调用会报该函数未定义 gprog....阅读全文

博文 2018-12-10 17:34:48 Chole121

Go语言中的变量

1 概述 变量(Variable)是程序运行过程中,内容可以变化(修改)的量,变量的功能是存储用户的数据,是计算机语言中能储存计算结果或能表示值抽象概念。变量,是通过变量的标识符定位值的过程。变量的内存模拟演示: 2 定义:声明和初始化 定义变使用var关键字,需要指定其类型,可以同时初始化,如果没有指定初始化值,则使用类型的默认值,语法如下: // 声明变量,未初始化(默认值初始化) var name string // 声明变量,特定值初始化 var user string = "Hank" Go语言中的变量必须声明后才可以使用,不能直接使用未定义的变量。 3 类型默认值(零值) Go语言的类型默认值如下所示: 整型和浮点型变量的默认值为 0。 字符串变量的默认值为空字符串。 布尔型变量...阅读全文

博文 2018-10-28 07:35:08 小韩说课

Go语言

特殊变量iota iota是golang语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。 iota常见使用法 跳值使用法 const ( a = iota //a=0 b = iota //b=1 _ = iota //跳值 c = iota //c=3 ) 插队使用法 const ( a = iota //a=0 b = iota //b=1 c = 3.14 //插队 d = iota //d=3 ) 表达式隐式使用法 未定义的常量自动继承上方最近的非空常量值。 const...阅读全文

博文 2019-01-31 21:34:42 HAPPYers

cgo go无法访问c结果的长度为0的成员

``` typedef struct student { char name[32]; int age; int private_len; int private_data[0]; }student_t; ``` 由于项目需要存在可边长数据,结构体最后为长度为0的可变数据信息,这里简化定义 在go文件中定义student C.student_t,无法直接访问student.private_data信息,会报错 提示student.private_data未定义。请问如果能访问到该成员呢?谢谢 ...阅读全文