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

GO-函数学习

函数的声明 go的函数声明通过func这个关键字,params是他的形参设置,result是他的return值 当设置params后调用func必须传入对应函数参数,当设置result后也必须有return,且params和result类型符合声明的 func name(params) (result) { } // 普通函数的声明 func getMax(num1 int, num2 int) (min int, max int) { // 推荐直接赋值给需要return的值 if num1 > num2 { max = num1 min = num2 } else { max = num2 min = num1 } return // 每一个函数必须要有return } 可变参数类型函数...阅读全文

博文 2018-12-02 03:34:40 GGBO0M

golang数据类型

Go语言中有四种复合数据类型:数组,slice,map,结构体 数组和结构体都是聚合类型,长度固定。而slice和map都是动态数据结构,长度可变。 数组 var arrName [len]T arrName := [...]int{1, 2, 3} arrName是数组的名字,len是数组的长度,需要时常量,在编译时确定。T是数组元素的类型。 长度也可以通过初始化元素个数决定,这时,len部分使用"..."代替。 如果数组元素是可比较的,那么数组也是可比较的。但只能是同类型的数组才能比较,否则编译错误。 %t - 输出一个bool值,%T - 输出一个变量的类型。 ****** 数组是按值传递的,但可以通过传递一个数组指针。 2.slice 表示一个拥有相同类型元素的可变长度序列:[]T,...阅读全文

博文 2018-12-19 10:34:45 陈卧虫

Go教程第九篇:可变参数函数

可变参数函数 欢迎来到《Golang系列教程》的第九篇文章---可变参数函数。 什么是可变参数函数 ? 通常情况下,函数只接受固定长度的实参作为参数。而 可变参数函数(a variadic function) 可以接收不定数量的实参。如果最后一个参数的前缀是三个省略号"...",那么对于对那个参数而言,这个函数就可以接收任意数量的实参。 只有函数的最后一个参数可以是可变的。我们将在这篇文章的下一部分中学习到这究竟是为什么。 Syntax语法 func hello(a int,b ... int){ } 在上面的函数中,参数b是可变的,因为它有前缀"..."。所以参数b可以接收任意数量的实参。该函数可以用下面这样的语法调用: hello(1, 2) //passing one argument...阅读全文

博文 2019-12-16 11:32:45 Tesfaye

应用编程基础课第三讲:Go编程基础

上面两次课我讲解了编程方面的基础知识,这次开始,我使用Go语言来做一些编程实践方面的讲解。 今天先来说下Go语言中的一些我认为比较重要的知识点。 关于Go的基础使用,这里不做过多介绍,可以阅读: How to Write Go Code:https://golang.org/doc/code.html Effective Go:https://golang.org/doc/effective_go.html The Way to Go:https://github.com/Unknwon/the-way-to-go_ZH_CN 重要的数据结构 slice 基础知识 slice是go中最常用的数据结构之一,它相当于动态数组,了解下它的内部实现,对我们是用来说有很大的好处: slice的数据结构...阅读全文

博文 2018-09-30 23:34:39 ligang1109

Golang 学习笔记六 函数和方法的区别

参考 golang 函数以及函数和方法的区别 在接触到go之前,我认为函数和方法只是同一个东西的两个名字而已(在我熟悉的c/c++,python,java中没有明显的区别),但是在golang中者完全是两个不同的东西。官方的解释是,方法是包含了接收者的函数。 一、函数 1.定义 函数声明包括函数名、形式参数列表、返回值列表( 可省略) 以及函数体。 func name(parameter-list) (result-list) { body } 比如 func hypot(x, y float64) float64 { return math.Sqrt(x*x + y*y) } fmt.Println(hypot(3,4)) // "5" 正如hypot一样,如果一组形参或返回值有相同的类型...阅读全文

博文 2019-01-27 09:34:43 懒皮

go语言:函数参数传递详解

参数传递是指在程序的传递过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。比较常见的参数传递有:值传递,按地址传递参数或者按数组传递参数。 1、常规传递 使用普通变量作为函数参数的时候,在传递参数时只是对变量值得拷贝,即将实参的值复制给变参,当函数对变参进行处理时,并不会影响原来实参的值。 例如: package main import ( "fmt" ) func swap(a int, b int) { var temp int temp = a a = b b = temp } func main() { x := 5 y := 10 swap(x, y) fmt.Print(x, y) } 输出结果:5 10 传递给swap的是x,y的值得拷贝...阅读全文

博文 2019-04-17 21:34:40 QFdongdong

JavaScript 形参与实参的爱恨情仇

作为前端开发,JavaScript 可谓是我们吃饭的家伙。 但我记得当我初学 JavaScript 的时候,总是搞不懂对形参的操作什么时候会影响到实参。 网络上关于这个问题众说纷纭,有说基本类型按值传递、复杂类型(对象、数组、函数等)按引用传递,更有人直接生造了一个词——按共享传递。 到底 JavaScript 的参数是按什么方式传递的呢? 考虑下面的例子: function addOne(num) { num += 1 } let n = 1 addOne(n) // n = ? 乍一看可能会觉得 n === 2 ,因为 num += 1 执行后 num 的值会变成 2。 但实际结果却是 n === 1,因为对形参的修改不会影响到实参的值。 按值传递?按引用传递? 再看另一个例子: fun...阅读全文

博文 2019-12-21 06:32:41 IdanLoo

一文理清 Go 引用的常见疑惑

今天,尝试谈下 Go 中的引用。 之所以要谈它,一方面是之前的我也有些概念混乱,想梳理下,另一方面是因为很多人对引用都有疑问。我经常会看到与引用有关的问题。 比如,什么是引用?引用和指针有什么区别?Go 中有引用类型吗?什么是值传递?址传递?引用传递? 在开始谈论之前,我已经感觉到这必定是一个非常头疼的话题。这或许就是学了那么多语言,但没有深入总结,从而导致的思维混乱。 前言 我的理解是,要彻底搞懂引用,得从类型和传递两个角度分别进行思考。 从类型角度,类型可分为值类型和引用类型,一般而言,我们说到引用,强调的都是类型。 从传递角度,有值传递、址传递和引用传递,传递是在函数调用时才会提到的概念,用于表明实参与形参的关系。 引用类型和引用传递的关系,我尝试用一句话概括,引用类型不一定是引用传递...阅读全文

博文 2019-09-28 19:02:39 波罗学

go中的方法学习

### 方法的定义 ``` func (recevier type) methodName(参数列表) (返回值列表){ 方法体 return 返回值 } ``` ### 方法的使用 1. 方法需要个定义的类型进行绑定 ``` type Person struct { Name string } func (p Person)testMothod(){ //绑定P类型 fmt.Println("Name =",p.Name) } func main() { person := Person{Name:"jack"} person.testMothod() } ``` 1. golang中的方法是作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型,都可以有方法,而不仅仅是st...阅读全文

博文 2020-04-13 16:17:03 Mr_Pon

Go随笔——函数的用法

定义函数包含函数名,行参列表,函数体和返回值列表,使用func进行声明,函数无参数或返回值时则形参列表和返回值列表省略func name(parameters) returns { }形参列表需要描述参数名及参数类型,所有形参为函数块局部变量,返回值需要描述返回值类型举例 1.无参 无返回值 func sayHello() { fmt.Println("hello world") } 2.有参 无返回值 func say(name string, name2 string) { fmt.Println("hello world:", name, name2) } 3.有参 有返回值 func add (a int, b int) int { return a + b } func main(...阅读全文

博文 2020-05-25 09:33:16 wujunqi1996

GoLang 学习笔记 - 函数(Function)

函数是基本的代码块,用于实现一个特定功能(Go 程序中必须要有一个 main() 函数)。   你可以通过函数来划分不同功能,逻辑上每个函数只执行指定的任务。函数声明会告诉 Go 编译器函数的名称,返回类型,和参数。   GoLang 标准库提供了多种可直接调用的内置函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度,如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。 函数定义   GoLang 语言函数定义格式如下: func function_name( [parameter list] ) [return_types] { // 函数体 } 函数定义解析: func:函数声明语句 function_name:函数名称,函数名和参数列...阅读全文

博文 2019-07-22 19:32:42 凉丶心园

Golang学习笔记-函数

Go函数定义格式如下: func function_name( [parameter list] ) [return_types] { 函数体 } 例如: func add(n1, n2 int) int{ return n1 + n2 } Go函数可以返回多个值,这个时候返回值类型要用括号括起来,例如: func div(n1, n2 int) (int,int){ return n1 / n2, n1 % n2 } Go函数可以给返回值命名,这个时候即使只有一个返回值也要用括号括起来,例如: func add(n1, n2 int) (result int){ result= n1 + n2 return } func div(n1, n2 int) (result int,remain...阅读全文

博文 2019-09-27 23:33:00 aside section ._1OhGeD

GO函数

/* 格式: func function_name( [parameter list] ) [return_types]{ 函数体 } func:func声明 function_name:函数名称 [parameter list]:参数列表 return_types:返回类型,不需要返回值的,return_types可以不写。 函数体:函数体 */ package main import ( "fmt" ) func main() { //定义局部变量 var a int = 55555 var b int = 66666 var result int //调用函数 (a和b实参) result = max(a, b) //调用函数 c, d := exchange("gxm", "sail...阅读全文

博文 2020-04-29 03:33:13 赛里