03 2020 档案
摘要:Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。数组定义:var 数组变量名 [元素数量]T var a1 [3]int //定义一个长度为3且存放int类型的数组 var a2 [2]string //定义一个长
阅读全文
摘要:切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型(直接引用的内存地址),它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。切片是引用类型,不支持直接比较,只能和nil比较! 得到切片的三种方式:
阅读全文
摘要:Go语言的测试技术是相对低级的。它依赖一个 go test 测试命令和一组按照约定方式编写的 测试函数,测试命令可以运行这些测试函数。编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示例文档。 go test 编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或
阅读全文
摘要:模板 一个模板是一个字符串或一个文件,里面包含了一个或多个由双花括号包含的{{action}}对象。大部分的字符串只是按面值打印,但是对于actions部分将触发其它的行为。每个actions都包含了一个用模板语言书写的表达式,一个action虽然简短但是可以输出复杂的打印值,模板语言包含通过选择结
阅读全文
摘要:defer是Go语言中的延迟执行语句,用来添加函数结束时执行的代码,常用于释放某些已分配的资源、关闭数据库连接、断开socket连接、解锁一个加锁的资源。Go语言机制担保一定会执行defer语句中的代码。其它语言中也有类似的机制,比如Java、C#语言里的finally语句,C++语言里的析构函数(
阅读全文
摘要:微信小程序 某个页面直接返回首页(微信小程序回退到首页) 转载依旧平凡 最后发布于2018-10-09 16:50:25 阅读数 24418 收藏 展开 打开小程序后,到三级页面后点击左上角的返回按钮,能够直接返回到首页 正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所
阅读全文
摘要:获取当前微信版本:wx.version.version一堆变量,慢慢看console.log({ __wxConfig, __wxAppCode__, $gwx, __vd_version_info__, __wxAppCurrentFile__, __wxRouteBegin, __wxRoute
阅读全文
摘要:function Rad(d) { return d * Math.PI / 180.0; //经纬度转换成三角函数中度分表形式。 } //计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度 function GetDistance(lat1, lng1, lat2, lng2) { var
阅读全文
摘要:JavaScript Array 对象 定义和用法 concat() 方法用于连接两个或多个数组。 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 语法 arrayObject.concat(arrayX,arrayX,......,arrayX) 参数描述 arrayX 必需。该参数
阅读全文
摘要:原创^_^爱的天空 最后发布于2019-04-25 20:55:25 阅读数 2414 收藏展开splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 语法: arrayObject.splice(index,howmany,item1,.....,itemX)参数 描述index
阅读全文
摘要:Go语言内置的flag包实现了命令行参数的解析。 os.Args os.Args是一个[]string类型。获取命令参数示例: func main() { if len(os.Args) > 0{ for index,args := range os.Args{ fmt.Printf("args[%
阅读全文
摘要:Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。 strconv包 strconv包实现了基本数据类型与其字符串表示的转换,官方文档中文版。 string与int类型转换 Atoi() 将字符串类型的整数转换为int类型。 func Atoi(s string) (i int,
阅读全文
摘要:获取文件信息 os.Stat()函数,返回fileInfo和err信息。 func main() { fileInfo, err := os.Stat("xx/test.txt") if err != nil { fmt.Println("get info err", err) return //将
阅读全文
摘要:bee 工具简介 bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。 bee 工具的安装 您可以通过如下的方式安装 bee 工具: go get github.com/beego/bee 安装完之后
阅读全文
摘要:golang语言中defer的使用场景较多,用于锁的关闭,连接的延迟关闭等,通常在函数的结束时调用,详细的讲就是在函数结束时返回值赋值后,返回前执行defer的方法,最后才返回,另外defer确实有一定的开销,拒绝滥用。 第一点、defer 不带函数执行,defer可以理解像栈,先进后出,看下面代码
阅读全文
摘要:defer的几个规则 //1:先给返回值赋值,然后调用defer表达式,最后才是返回到调用函数中。 //2: golang按照先定义后执行的顺序依次调用defer //3: defer是在return调用之后才执行的 //4: defer可以读取有名返回值 //5: defer延迟执行的是最后的一个
阅读全文
摘要:更多用法,参考GO语言标准库 获取文件信息 os.Stat()函数,返回fileInfo和err信息。 func main() { fileInfo, err := os.Stat("xx/test.txt") if err != nil { fmt.Println("get info err",
阅读全文
摘要:时间类型 time.Time类型表示时间。 //时间类型 func timeDemo() { now := time.Now() fmt.Println(now) //2019-04-20 13:52:35.226397 +0800 CST m=+0.000336111 fmt.Println(no
阅读全文
摘要:General(通用占位符)  Integer整形  Integer width(指定长度的整型,以5为例)  Float(浮点数)  String(字符串)  String Width (指定长度的字符串,以5为例)  Struct(结构体)  Boolean(布尔值)  Poin
阅读全文
摘要:Go 语言内置的运算符有: 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 算数运算符  关系运算符  逻辑运算符  位运算符  赋值运算符 
阅读全文
摘要:在Go语言中接口(interface)是一种类型,一种抽象的类型。 接口的定义 定义格式: type 接口类型名 interface{ 方法名1( 参数列表1 ) 返回值列表1 方法名2( 参数列表2 ) 返回值列表2 … } Go语言的接口在命名时,一般会在单词后面添加er,接口名最好要能突出该接
阅读全文
摘要:lifaray portal 全屏展示实现方式修改文件custom.css的样式: 把content-wrapper的宽度从90%修改为100%。 文件位置: html/themes/classic/css/custom.css 原始代码:#content-wrapper { margin: 0 a
阅读全文
摘要:Liferay中Portal.properties常用配置参数 2013年01月12日 Liferay 评论 12 条 阅读 23,887 views 次 请到原网站浏览:http://www.huqiwen.com Liferay中Portal.properties文件保存着Liferay很多的平
阅读全文
摘要:Liferay Portal为我们提供了非常灵活的主题风格定制功能,自身带了四种风格的theme,在官方网站上提供了很多风格theme的下载,这无疑大大增强了主题风格定制的功能。但是,我们完全可以开发具有自己风格的theme,这里,我们将讨论怎样来开发个性的theme。第一步:我们将以现有风格cla
阅读全文
摘要:liferay常用链接地址: https://www.liferay.com/zh/downloads-community https://sourceforge.net/projects/lportal/files/Liferay%20Portal/ https://sourceforge.net
阅读全文
摘要:Liferay Portal5.2.3 环境的初步搭建 一、 准备工作 1、 开发包 目前 Liferay 官网 http://www.liferay.com/zh/home 上只提供最新版本的 liferay 包下载,下载 5.2.3 版本需要到开源社区 http://sourceforge.ne
阅读全文
摘要:并发与并行 并发:同一时间段执行多个任务并行:同一时刻执行多个任务Go语言的并发通过goroutine实现。goroutine类似于线程,属于用户态的线程,我们可以根据需要创建成千上万个goroutine并发工作。goroutine是由Go语言的运行时调度完成,而线程是由操作系统调度完成。Go语言还
阅读全文
摘要:TCP通信粘包问题分析和解决(全) 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据
阅读全文
摘要:语言-格式输入输出中“%d, %s,%o,%x,%e,%f,%v,%+v,%#v”等的含义 %d整型输出,%ld长整型输出,%s用来输出一个字符串, %+v 采取默认值输出 %c用来输出一个字符,%u以十进制数输出unsigned型数据(无符号数)%f用来输出,以小数形式输出,(备注:浮点数是不能定
阅读全文
摘要:参考;https://blog.csdn.net/xuduorui/article/details/78731650 常见并发编程模型分类并发编程模型,顾名思义就是为了解决高并发充分利用多核特性减少CPU等待提高吞吐量而提出的相关的编程范式。目前为止,我觉得比较常见的并发编程模型大致可以分为两类:
阅读全文
摘要:截取自我的博客:https://chunlife.top/ Goroutine称呼上一般被我们理解为协程(Coroutine),类似于轻量级“线程”。 Goroutine是一种编译器/解释器/虚拟机层面的多任务,并不属于操作系统。多个协程可能在一个或多个线程上运行(由调度器决定)对比操作系统(*ni
阅读全文
摘要:简单来说:协程十分轻量,可以在一个进程中执行有数以十万计的协程,依旧保持高性能。 进程、线程、协程的关系和区别: 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。 协程和线程一样共享堆,不
阅读全文
摘要:进程、线程、协程的关系和区别: 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。 协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。启动一个线程消耗8M左右的内存,启动一
阅读全文
摘要:一般说到内存指的是计算机的随机存储器(RAM),程序都是在这里面运行。计算机内存的大致划分如下: 1:内存地址由上倒下依次增加 2:内存由上倒下依次分为以下几块: 内核虚拟内存:用户代码不可见的内存,地址空间顶部的区域,是为内核保留的。 栈: 维护虚拟地址的空间顶部是用户栈,编译器用它来实现函数调用
阅读全文
摘要:概述bufio模块通过对io模块的封装,提供了数据缓冲功能,能够一定程度减少大块数据读写带来的开销。 实际上在bufio各个组件内部都维护了一个缓冲区,数据读写操作都直接通过缓存区进行。当发起一次读写操作时,会首先尝试从缓冲区获取数据;只有当缓冲区没有数据时,才会从数据源获取数据更新缓冲。 Read
阅读全文
摘要:socket编程 Socket是BSD UNIX的进程通信机制,通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。Socket可以理解为TCP/IP网络的API,它定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。电脑上运行的应用程序通常通过”套接字”向网络发
阅读全文
摘要:包介绍 包(package)是多个Go源码的集合,go语言有很多内置包,比如fmt,os,io等。 定义包 main包是一个可执行的包,是应用程序的入口包,编译完会生成一个可执行文件。包名可以不和文件夹的名字一样,包名不能包含 - 符号。 package 包名 可见性:名称变量以大写字母开始,包外可
阅读全文
摘要:找不到模板文件,找不到配置文件,nil 指针错误 这种大多数情况是由于你采用了 go run main.go 这样的方式来运行你的应用,go run 是把文件编译之后放在了 tmp 下去运行,而 beego 的应用会读取应用的当前运行目录对应的 conf,view 去查找相应的配置文件和模板,因此要
阅读全文
摘要:Supervisord Supervisord 是用 Python 实现的一款非常实用的进程管理工具,supervisord 还要求管理的程序是非 daemon 程序,supervisord 会帮你把它转成 daemon 程序,因此如果用 supervisord 来管理 nginx 的话,必须在 n
阅读全文
摘要:发行部署 开发模式 通过 bee 创建的项目,beego 默认情况下是开发模式。 我们可以通过如下的方式改变我们的模式: beego.RunMode = "prod" 或者我们在 conf/app.conf 下面设置如下: runmode = prod 以上两种效果一样。 开发模式中 开发模式下,如
阅读全文
摘要:API自动化文档 自动化文档一直是我梦想中的一个功能,这次借着公司的项目终于实现了出来,我说过 beego 不仅仅要让开发 API 快,而且让使用 API 的用户也能快速的使用我们开发的 API,这个就是我开发这个项目的初衷。好了,赶紧动手实践一把吧,首先 bee api beeapi 新建一个 A
阅读全文