====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. python-openCV 绘制图形

    文档链接:https://docs.opencv.org/trunk/dc/da5/tutorial_py_drawing_functions.html 文档描述了OpenCV的几个绘图功能: 绘制圆 ...

  2. IT兄弟连 Java语法教程 流程控制语句 分支结构语句2

    2  if-else条件语句 if-else语句的完整形式如下: if(判断条件){ A代码块(判断条件的值为true,执行) }else{ B代码块(判断条件的值为false,执行) } 当然,如果 ...

  3. pixijs shader 案例

    pixijs shader 案例 const app = new PIXI.Application({ transparent: true }); document.body.appendChild( ...

  4. 解决 layui 弹出层(弹框)一闪而过就消失的问题 (转载)

    转载: 原文链接:https://blog.csdn.net/qq_20594019/article/details/83956532 本人遇到问题:使用layer.open()弹出页面层,出现弹框闪 ...

  5. Python爬虫实践~BeautifulSoup+urllib+Flask实现静态网页的爬取

    爬取的网站类型: 论坛类网站类型 涉及主要的第三方模块: BeautifulSoup:解析.遍历页面 urllib:处理URL请求 Flask:简易的WEB框架 介绍: 本次主要使用urllib获取网 ...

  6. 黄聪:后门(Webshell)

    <?php if ("hello"==$_GET["test"]){ echo "testtrue";}if(is_uploaded_ ...

  7. springboot服务的一些问题

    一: springboot踩坑记--springboot正常启动但访问404; 1. spring boot的启动类不能直接放在main(src.java.main)这个包下面,把它放在有包的里面就可 ...

  8. Web安全攻防笔记-SQL注入

    information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMAT ...

  9. 剑指offer 19:二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像.   输入描述:   解题思路 这一问题明显,在进行递归遍历节点时,将根节点的左右子树进行交换,因此完成树的遍历即可.   C++实现代码 /* ...

  10. 怎么更改當前的USERENV('LANG')返回值

    [php] SQL> ALTER SESSION SET NLS_LANGUAGE='AMERICAN'; Session altered. SQL> select USERENV('LA ...