====type====

import (
"fmt"
) func main() {
type bigint byte //定义类型
var a bigint
fmt.Printf("a type is %T\n",a)
type(
long int64
char byte
)
var b char ='a'
var c long =1000 fmt.Printf("b=%c,c=%d",b,c) ========channel========
package main import (
"time"
"fmt"
) func test_channel() {
//ch:=make(chan int)
ch<-1
ch<-1
fmt.Println("come to end go runtime 1")
} var ch chan int
func main() {
ch =make(chan int,0)
go test_channel()
time.Sleep(2* time.Second)
fmt.Println("runing end")
<-ch
time.Sleep(time.Second)
} =====协程==========
package main import (
"fmt"
"time"
) func test_Rou(){
fmt.Println("ddd")
}
func Add (x,y int){
z:=x+y
fmt.Println(z)
}
func main() {
go test_Rou()
for index := 0; index < 10; index++ {
go Add(index,index)
}
time.Sleep(10)
}

-----指针----
package main
import ("fmt")
func swap(p1 * int,p2 * int){
*p1,*p2 =*p2,*p1;
}
func main() {
a :=10;
var p * int;p=&a;
fmt.Printf("p=%d,&a=%v,*p=%v\n",p,&a,*p)
a,b :=10,20
swap(&a,&b)
fmt.Printf("a=%d,b=%d\n",a,b)
}

  

--------多维数组------
package main
import (
"fmt"
)
func main() {
//多维数组
//var a [10] int
//var b [5] int
//fmt.Println(a,b);
var c [3][4] int
k:=0;
for i:= 0; i<3; i++ {
for j := 0; j <4; j++ {
k++;
c[i][j]=k;
fmt.Printf("a[%d][%d]=%d,\n",i,j,c[i][j])
//frm.fmt.Println(i,j,a[i][j])
}
} }

随机数

 产生数据数 

package main

import (
"fmt"
"math/rand"
"strconv"
"time"
) func main() {
//设置随机数种子
rand.Seed(time.Now().UnixNano())
var captcha string
for i := 0; i < 6; i++ {
//产生0到9的整数
num := rand.Intn(10)
//将整数转为字符串
captcha += strconv.Itoa(num)
}
fmt.Println(captcha)
}

  

---go 回调函数

package main

import (
"fmt"
) type FuncType01 func(int,int)int //回调函数 就是函数有一个参数是函数类型,这个函数就是回调函数
//fTest FuncType01 多态接口 调用一个接口,可以有不同实现方式 func Calc(a,b int,fTest FuncType01)(result int){ //fTest = Add1
// fmt.Println("Calc")
result = fTest(a,b)
//result =Add1(3,4)
return
} func Add1(a,b int) int {
return a+b
} // func Minus1(a,b int) int {
// return a -b
// } // func Mul(a,b int) int{
// return a*b
// } func main() { a := Calc(3,4,Add1)
fmt.Println("a=",a) // a = Calc(7,5,Minus1)
// fmt.Println("a=",a) // a = Calc(4,3,Mul)
//fmt.Println("a=",a) }

-----闭包及闭包的特点 

package main

import "fmt"

func main(){
a := 20
str := "aaa" func(){
//闭包以引用的方式捕获外部变量
a = 40
str ="bbb"
fmt.Printf("a=%d,str=%s\n",a,str)
}() fmt.Printf("a=%d,str=%s\n",a,str) }
package main
import "fmt"
func test() func() int {
  var x int //x没有初始化,值为0
  return func() int {
     x++
     return x*x
  }
}
func main()  {
  //返回值是一个匿名函数,返回一个函数类型,通过f来调用返回的匿名函数,f来    调用闭包函数
  //f不关心这些捕获的变量和常量是否超出作用范围,只要你的f存在,还在使用x,这个变量x就会一直存在
  f := test()
  fmt.Println(f())
  fmt.Println(f())
  fmt.Println(f())
  fmt.Println(f())
    f = test()
    fmt.Println(f())
}
/*
func test() int  {
    //函数调用时候,x才会分配空间,才初始化为0
    var x int //没有初始化,值为0
    x++
    return x*x //函数调用完毕,x自动释放
}
func main(){
    fmt.Println(test())
    fmt.Println(test())
    fmt.Println(test())
    fmt.Println(test())
}
*/

  

go 基本语法的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  3. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  4. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  7. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  10. postgresql 基本语法

    postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...

随机推荐

  1. poj 2431 Expedition 贪心 优先队列 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=2431 题解 朴素想法就是dfs 经过该点的时候决定是否加油 中间加了一点剪枝 如果加油次数已经比已知最少的加油次数要大或者等于了 那么就剪 ...

  2. Spring Batch与ETL工具比较

    在实际应用中,在批处理中用得较多的是场景是数据同步.在做数据集成工作中,常常需要从源位置把数据同步到目标位置,以便于进行后续的逻辑操作.在做这种批处理工具时,在网上查资料,发现用得比较多的是kettl ...

  3. sql server 2008清除日志

    先改成简单模式,再清除日志,再改回原来模式 USE [oms20190322]GOALTER DATABASE oms20190322 SET RECOVERY SIMPLE WITH NO_WAIT ...

  4. 【2019.8.15 慈溪模拟赛 T1】插头(plugin)(二分+贪心)

    二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能 ...

  5. 基于SincNet的原始波形说话人识别

    speaker recognition from raw waveform with SincNet Mirco Ravanelli, Yoshua Bengio 作为一种可行的替代i-vector的 ...

  6. React: React的组件状态机制

    一.简介 在React中,有两个核心的默认属性,分别是state和props.state会记录组件的状态,React根据状态的变化,会对界面做相应的调整或渲染.props则是数据流向属性,React通 ...

  7. Jenkins—Master/Slave模式

    Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...

  8. PHP 扩展与 ZEND 引擎的整合

    PHP 扩展是对 PHP 功能的一个补充,编写完 PHP 扩展以后, ZEND 引擎需要获取到 PHP 扩展的信息,比如 phpinfo() 函数是如何列出 PHP 扩展的信息,PHP 扩展中的函数如 ...

  9. 2018-12-25-win10-uwp-通知列表

    原文:2018-12-25-win10-uwp-通知列表 title author date CreateTime categories win10 uwp 通知列表 lindexi 2018-12- ...

  10. VS2019安装好后,经常打不开软件没反应解决方法

    原文地址:https://blog.csdn.net/FL1623863129/article/details/89013137 VS2019于昨日正式发布,博主立马下载一个专业版尝尝鲜,但是发现项目 ...