package main;

import (
"fmt"
); func main() {
isRun := true; //条件判断
if isRun {
fmt.Printf("run\n");
} else {
fmt.Printf("not run\n");
} //多条件判断
a := 15;
if a > 0 && a < 10 {
fmt.Printf("0-10\n");
} else if a > 10 && a < 20 {
fmt.Printf("10-20\n");
} else if a > 20 {
fmt.Printf(">20\n");
} //goto跳转当前函数内定义的标签
b := 10;
TEST:
if b != 0 {
fmt.Println(b);
b--;
goto TEST;
} //for循环
sum := 0;
for i := 0; i < 100; i++ {
sum += i;
}
fmt.Println(sum); //for配合range读取map和slice中数据
var s = []int{1, 2, 3, 4, 5};
for k, v := range s {
fmt.Println(k, v);
} m := make(map[string]string);
m["name"] = "xiaoxu";
m["age"] = "27";
m["sex"] = "男";
for k, v := range m {
fmt.Println(k, v);
} //switch分支判断
//Go里面switch默认每个case最后带有break
//可以使用fallthrough强制执行后面的case代码
var code int = 2;
switch code {
case 1 : fmt.Println(1);
case 2 : fmt.Println(2);
case 3 : fmt.Println(3);
case 4 : fmt.Println(4);
default: fmt.Println(0);
} //调用函数
fmt.Println(sum2(10, 20));
//调用返回多个值的函数
su, minus := sumAndMinus(10, 20);
fmt.Println(su, minus);
//调用变参函数
prints(5, 4, 3, 2, 1); //调用传值函数
num := 10;
add1(num);
fmt.Println(num);
//调用传指针函数,这里num的值也跟着改变了
add2(&num);
fmt.Println(num); //调用defer
testDefer();
} //声明一个函数,返回类型int
func sum2(num1 int, num2 int) int {
return num1 + num2;
} //函数返回多个值
func sumAndMinus(num1 int, num2 int) (int, int) {
return num1 + num2, num1 - num2;
} //变参函数
func prints(arg ...int) {
//arg是一个slice
for _, v := range arg {
fmt.Println(v);
}
} //传值函数
func add1(n int) int {
n++;
return n;
} //传指针
func add2(n *int) int {
(*n)++;
return (*n);
} //defer延迟语句,当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。
func testDefer() {
for i := 0; i < 5; i++ {
defer fmt.Print(i);
}
}

  

go流程控制与函数的更多相关文章

  1. Go语言学习之3 流程控制、函数

    主要内容: 1. strings和strconv使用2. Go中的时间和日期类型3. 指针类型4. 流程控制5. 函数详解 1. strings和strconv使用 //strings . strin ...

  2. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  3. flutter--Dart基础语法(二)流程控制、函数、异常

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

  4. javascript之流程控制 和函数的容易忽略点

    1.流程控制 1> for in  仅用于 对象的遍历: var box={ "name":'小红', 'age':18, 'height':165 }; for(var b ...

  5. Go 从入门到精通(三)字符串,时间,流程控制,函数

    一.strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirn ...

  6. Javascript初识之流程控制、函数和内置对象

    一.JS流程控制 1. 1.if else var age = 19; if (age > 18){ console.log("成年了"); }else { console. ...

  7. JavaScript流程控制及函数

    1 流程控制 1.1 条件语句 分支结构 单向分支 if (条件表达式) { code...} 双向分支 if (条件表达式){    } else {    } <!DOCTYPE html& ...

  8. golang基础之三-字符串,时间,流程控制,函数

    strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirngs ...

  9. Linux基础之-shell script(变量,运算符,流程控制,函数)

    一.shell script Shell 脚本(shell script),是一种为shell编写的脚本程序.业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell s ...

  10. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

随机推荐

  1. Spring事务异常rollback-only

    转自:https://blog.csdn.net/sgls652709/article/details/49472719 前言 在利用单元测试验证spring事务传播机制的时候出现了下面的异常: Tr ...

  2. python import sklearn出错 "ImportError: DLL load failed: 找不到指定的模块。

    安装好sklearn模块后,import的时候出现了以下错误: 但是确实已经装好了,百思不得其解,网上查找之后发现,出现错误原因:安装包的来源问题,也可以理解为包版本兼容问题,有的包使用官方出版,有的 ...

  3. jdk动态代理和cglib动态代理

    参考: http://www.importnew.com/22015.html Java动态代理 上面的代码运行的结果为: I'm proxy! Welcome oschina hosee's blo ...

  4. js高级-闭包

    function foo(x){ var tmp = 3; return function(y){ //把一个函数作为返回值,定义时候的作用域 console.log(x+y+(++tmp)) //+ ...

  5. SQL Server 事件探查器和数据库引擎优化顾问

    简介 说到Sql的[性能工具]真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底是做什么用的呢?我们都知道探查的意思大多是和监视有关,其实这个SQL S ...

  6. 2.5、CDH 搭建Hadoop在安装(设置Cloudera Manager数据库)

    步骤5:设置Cloudera Manager数据库 Cloudera Manager Server包含一个可以为自己创建和配置数据库的脚本.该脚本可以: 创建Cloudera Manager Serv ...

  7. Animator

    [Animator] 1.State Machine Behaviours A State Machine Behaviour is a special class of script. In a s ...

  8. javase中javax源码下载地址

    OracleJDK 和 OpenJDK 源码都可以参考. OpenJDK 源码下载 http://hg.openjdk.java.net/jdk7/jdk7/jdk/file 我主要是想下载 java ...

  9. 使用Jmeter(三十)针对ActiveMQ JMS POINT TO POINT压力测试(转载)

    转载自 http://www.cnblogs.com/yangxia-test 准备工作 针对JMS类型的Sampler,需要额外的jar包(这里用的是apache ActiveMQ,将下载的AMQ  ...

  10. tomcat部署war包

    部署步骤 1.下载tomcat 直接在网上下载即可,随便把包下到一个地方 下面文中的xxx均代表tomcat的安装目录   2.将java工程导出war包 在intellij idea的执行左侧选中t ...