go语言

1.强制类型转换

package main
import (
	"fmt"
	"math"
)
func main()  {
	var a,b int  =3,4
	var c int
	//强制类型转换,GO语言没有 隐式类型转换
	c=int(math.Sqrt(float64(a*a+b*b)))  //强制类型 转换
	fmt.Println(c)
}

2.数组

package main
import "fmt"
func main()  {
	var a[5] int
	fmt.Println("array a",a)

	a[1]=10
	a[3]=30
	fmt.Println("assign:",a)
	fmt.Println("len:",len(a))

	b:=[5]int{1,2,3,4,5}
	fmt.Println("init:",b)

	var c[2][3]int
	for i:=0;i<2;i++  {
		for j:=0; j<3;j++ {
			c[i][j]=i+j
		}
	}
	fmt.Println("2d:",c)
}

4 切片

类型 []T 表示一个元素类型为 T 的切片。
切片通过两个下标来界定,即一个上界和一个下界,二者以冒号分隔:
a[low : high]
a[1:4] 它包含 a 中下标从 1 到 3 的元素:

切片就像数组的引用
切片并不存储任何数据,它只是描述了底层数组中的一段。
更改切片的元素会修改其底层数组中对应的元素。
切片文法类似于没有长度的数组文法。
这是一个数组文法:
[3]bool{true, true, false}
切片下界的默认值为 0,上界则是该切片的长度。
以下切片是等价的:

a[0:10]

a[:10]

a[0:]

a[:]

切片的长度与容量
切片拥有 长度 和 容量。
切片的长度就是它所包含的元素个数。
切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。
切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。
nil 切片的零值是 nil
用 make 创建切片,创建动态数组的方式。
make 函数会分配一个元素为零值的数组并返回一个引用了它的切片:

a := make([]int, 5)  // len(a)=5

切片的切片,即是二维数组

board := [][]string{

[]string{"_", "_", "_"},

[]string{"_", "_", "_"},

[]string{"_", "_", "_"},

}
package main
import "fmt"
func main() {
a2:=[5]int{1,2,3,4,5}
b2:=a2[2:4]
fmt.Println(b2)

b2=a2[:4]
fmt.Println(b2)

b2=a2[2:]
fmt.Println(b2)
}

3  结构体 type Person struct

package main
import "fmt"
type Person struct {
	name string
	age int
	email string
}
func main()  {
	//初始化
	person:=Person{"Tom",30,"tom@gmail.com"}
	fmt.Println(person)    //输出(Tom 30 tom@gmail.com)

	var person2=Person{"jan",24,"jan@gmail.com"}
	fmt.Println(person2)

	pPerson:=&person
	fmt.Println(pPerson)  //输出 &(Tom 30 tom@gmail.com)

	pPerson.age=40
	person.name="Jerry"
    fmt.Println(person)  //输出{Jerry 40 tom@gmail.com}
}

4.结构体 type rect struct

package main

import (
	"fmt"
	_ "fmt"
)
type rect struct {
	width,height int
}

func(r *rect) area() int{  //求面积
	return r.width*r.height
}
func(r *rect) perimeter() int{ //求周长
	return 2*(r.width+r.height)
}

func main()  {
	r:=rect{width:10,height:15}
	fmt.Println("10x15面积:",r.area())
    fmt.Println("10x15周长:",r.perimeter())

	rp:=&r
	fmt.Println("10x15面积:",rp.area())
	fmt.Println("10x15周长:",rp.perimeter())
}

5.创建一个Web服务

package main
import (
	"fmt"
	"net/http"
)

func myWeb(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "这是一个开始")
}

func main() {
	http.HandleFunc("/", myWeb)
	fmt.Println("服务器即将开启,访问地址 http://localhost:8080")

	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		fmt.Println("服务器开启错误: ", err)
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PowerBI系列之基础和可视化技能专题基础概念PowerBI是什么PowerBI优秀作品展示PowerBI组件简介 PowerBI Desktop的下载安装PowerBI Desktop界面介绍和5分钟入门 PowerBI账号区别PowerBI对象和结构PowerBI和Tableau等其他主流BI产品的介绍 PowerBI官方文档基本操作文件和报表设置选项介绍页面属性设置-大小、背景、壁纸、对齐、筛选器窗格格式页面视图-适应页面、宽度、实际大小视觉对象格式属性面板快速调整页面布局和样式 (文本笔记)视觉对象分组、显示或隐藏 使用数据对象表和数据点表   向报表添加文本框和形状可视化技能使用编辑交互功能来控制图表联动多层联动中控制使用Control Click切片器的使用同步切片器折叠切片器给切片器设定默认值给切片器设定动态默认值(DAX函数-默认当前月或天)使切片器默认代表无任何选择切片器仅显示有对应数据的选项使切片器反向筛选和计算切片器之间取数据并集关系中多端的切片器筛选一端的切片器参数的创建和参数切片器的使用筛选器书签和选择窗格下拉式多级菜单页面导航菜单报表主页设计和重置切片器普通和自定义以及视觉对象标头工具提示按列排序和自定义排序分组装箱普通钻取和层次钻取及跨页钻取保留所有筛选器和设置钻取按钮跨报表钻取Matrix 矩阵详解矩阵中为每个列快速设置相同列宽矩阵中动态显示列的两种方法使用Web超链接和图片超链接文本框设置超链接或邮件地址手机端页面布局创建参数和使用报表模块(输入或值列表)利用报表模板和参数控制线下报表数据权限利用参数实现数据手工加密和权限控制利用页面导航控制页面级权限报表主题控制和主题模板生成器PBIX和PBIT文件结构解析:提取图片和主题,提取已下架的自定义图表,报表元数据等 PBIDS预定义数据连接文件DAX函数使可视化强大 DAX函数实现特殊符号的使用 DAX函数实现切片器默认当前月或天 DAX函数使切片器默认代表无任何选择 DAX函数使切片器仅显示有数据的选项 DAX函数使切片器反向筛选和计算 DAX函数使切片器之间取并集 DAX函数使关系中多端的切片器筛选一端的切片器DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangchuang2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值