自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 go modules使用

什么是Go ModulesGo Modules 是 Golang 官方最近几个版本推出的原生的包管理方式,类似于php的composer、java的maven1、使用方式我的版本:go version go1.13.6 windows/amd64使用前需要开启环境变量 GO111MODULE off/on/auto go env -w GO111MODULE=on在 GOPATH 之外创建一个项目test,包含一个 main.go 文件,内容如下:package mainimport

2020-06-09 18:03:07 486

原创 go指针详解

1、指针的概念内存是什么?我们在编程的时候,实际上就是在操作内存,除非是进行IO操作写磁盘,否则都是在内存中增删改查计算机的内存,就是一系列有序列号的存储单元,好比一家酒店,有一个接一个的按序排列的房子,房间里的东西,就是内存里存储的值那么在内存中,如何快速寻找一个值?答案是地址,只有用地址访问是最快的可是屋子太多了,多到很容易记错地址,比如我想找吃饭的地方,地址是XX酒店XX楼XX号房间地址太长可能导致记忆困难、操作失误等等(类似于ip地址),所以现代的编程语言对于用户隐藏了操作内存的细节,

2020-06-09 17:14:36 474

原创 go语言学习(十、数组、切片、字典)

数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型package mainimport ( "fmt" "reflect")func main() { /* 数组声明 */ // 数组声明格式 TypeOf输出变量类型 // 结果输出:[10]int var tArray [10] int fmt.Println(reflect.TypeOf(tArray)) // 不指定数组元素长度 让编译器自己识别 /

2020-06-02 16:47:00 295

原创 go语言学习(九、变量作用域)

作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围函数内定义的变量称为局部变量函数外定义的变量称为全局变量函数定义中的变量称为形式参数package mainimport "fmt"// 函数外部定义 全局变量// 全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑var d int = 20func main() { // 函数内部定义 局部变量 它们的作用域只在函数体内,参数和返回值变量也是局部变量 // 输出 局部变量 1 2 3 a

2020-05-29 18:34:20 168

原创 go语言学习(八、函数和方法)

函数是基本的代码块,用于执行一个任务函数定义func:函数由 func 开始声明function_name:函数名称,函数名和参数列表一起构成了函数签名。parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 retu

2020-05-29 18:05:13 192

原创 go语言学习(七、语言循环语句)

在不少实际业务中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句 Go 语言提供了以下几种类型循环处理语句for循环package mainimport "fmt"func main() { // for语言结构 for init; condition; post { } // 先对表达式init 赋初值 就是 i:= 0 // 判别表达式 condition 是真,则执行循环体内语句,然后执行 post,进入第二次循环 // 再次判别表达式 condition 是假,终止

2020-05-29 14:22:01 161

原创 go语言学习(六、语言条件语句)

Go 语言提供了以下几种条件判断语句:package mainimport "fmt"func main() { // If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则不执行 if true { fmt.Println("犀利的大熊") } // If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则执行 else 语句块 if true { fmt.Println("犀利的大熊") } else { fmt.Pr

2020-05-28 17:17:00 149

原创 go语言学习(五、运算符)

运算符用于在程序运行时执行数学或逻辑运算Go 语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符算术运算符:package mainimport "fmt"func main() { a, b := 10, 20 fmt.Println(a + b) // 30 fmt.Println(a - b) // -10 fmt.Println(a * b) // 200 fmt.Println(a / b) // 0 整数运算导致 如果想得到0.

2020-05-25 18:36:16 145

原创 go语言学习(四、变量和常量)

变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念变量可以通过变量名访问,Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字声明变量的一般形式是使用 var 关键字:package mainimport "fmt"func main() { // 声明没有初始化值 则系统默认根据类型赋值 bool默认为false string默认为"" // 数字类型默认为0 以下类型为nil //var a *int //var a []int //var a map[

2020-05-25 15:22:39 134

原创 go语言学习(三、数据类型)

在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,是内存利用更充分package mainimport ( "fmt" "reflect")func main() { /* 布尔型 */ var tBool bool = true // 布尔型 /* 字符型 */ var tString string = "犀利的大熊" // 字符串 一串固定长度的字符连接起来的字符序列 /*

2020-05-25 14:43:59 127

原创 go语言学习(二、基础语法)

标识符标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字有效标识:service、_method、startTime、end_time、date1无效标识:1date(以数字开头)、case(保留关键字)、a+b(出现运算符)字符串连接Go 语言的字符串可以通过 + 实现package mainimport "fmt"func main() { fmt.Println("

2020-05-22 17:33:56 183

原创 go语言学习(一、语言结构)

-Go 语言的基础组成包声明:引入包函数变量语句 & 表达式注释:常用单行注释,多行注释也叫块注释,多用于包文档描述或注释多行代码以一段代码说明一下/*你必须在源文件中非注释的第一行指明这个文件属于哪个包package main表示一个可独立执行的程序每个 Go 应用程序都包含一个名为 main 的包*/package main// 引入包 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包import "fmt" // 函数func

2020-05-22 16:13:22 198

原创 go语言学习 序章

学习任何一门语言,都要学习好基础,把基础打牢,框架之类的只是基础组合而成的工具如何系统学习go语言已经有很多人有过总结 不再赘述 以下内容转自知乎 文章来源无论学习什么知识,第一步都是查看官方文档官方文档 :中文官方文档 先通读一边 了解自己要学的具体是哪些内容go指南:交互式运行环境,不安装golang便可体验学习它的语法与使用标准库:可以查看所有的官方库的接口、源码以及使用介绍第二步,看完文档之后,可以跟着指南,敲一遍代码,熟悉go的语法操作,然后就是实践了,可以尝试写一些小东西第三步,熟

2020-05-22 15:55:52 152

原创 架构设计的思维和程序设计的思维差异

架构设计的思维和程序设计的思维差异很大。架构设计的关键思维是判断和取舍,程序设计的关键思维是逻辑和实现。很多程序员在转换为架构师后,很难一开始就意识到这个差异,还是按照写代码的方式去思考架构,会导致很多困惑程序员干了几年之后,需要考虑转型的问题,如果喜欢钻研技术,那么可以考虑技术专家方向,如果沟通能力强,可以考虑架构师方向架构师需要考虑的东西很驳杂,这次学习是基于李春来老师的架构课程,记录一...

2020-04-27 15:39:58 267

原创 mac homebrew的安装和使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷,相当于windows下的软件管家。 官网地址:https://brew.sh/ 官方介绍:Homebrew installs the stuff you need that...

2018-05-22 17:01:15 339

原创 PHP 设计模式 建造者模式

建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式在建造者模式中,有4个角色抽象建造者(Builder) 定义一个抽象接口,规范产品各个组成成分的建造(即规范具体建造者的方法实现)。其中所规范的方法中必须包括建造方法和结果返回方法 具体建造者(ConcreteBuilder) 实现抽象建造者角色所

2018-02-05 16:46:11 238

原创 PHP 设计模式 抽象工厂

上篇文章说了PHP下的简单工厂(静态工厂) 和工厂模式,现在说一下抽象工厂模式工厂模式我们已经说过,增加一个产品很简单,增加对应的产品类和工厂类,不需要对原有代码进行改动,符合开闭原则 现在接着上篇文章,我们又有了新的需求,我们要求苹果味饮料和香蕉味饮料,有百事和可口可乐两个品牌,用工厂模式,就实现不了了,我只能增加单一的产品,但是增加品牌我实现不了,引申而出抽象工厂模式,代码如下

2018-01-23 18:03:45 211

原创 mac phpstorm 使用心得

mac设置phpstorm快捷键Phpstorm->Preferences->Keymap可以选择快捷键模板 有defalut、eclipse、eclipse for mac等等 我习惯的是eclipse 但是切到eclipse下可能有的快捷键没有 这会儿就需要自己修改一下了mac的各种健在快捷键中的图标如下 ⌘ Command⌃ Control⌥ Optio

2018-01-22 16:36:03 1444

原创 php+mysql开发中的一些小常识

一、基础规范 (1)尽量使用 InnoDB 存储引擎 支持事务、行级锁、并发性能更好,CPU 及内存缓存页优化得当,资源利用率更高(2)必须使用 UTF8 字符集 无需转码,无乱码风险(3)数据表、数据字段必须加入中文注释 N 年后谁知道这个 r1,r2,r3 字段是干嘛的(4)尽量不要使用存储过程、视图、触发器、Event 高并发大数据的互联网

2018-01-11 16:24:00 303

原创 将1234567890转换成1,234,567,890 每3位用逗号隔开的形式 PHP千分位

面试的时候碰到了这个问题,简单的研究了一下,常用的有两种方法1.使用php的系统函数 number_format$num = 1234567890;echo number_format($num);//1,234,567,890echo number_format($num,2);//1,234,567,890.00echo number_format($num,2,'.',

2018-01-11 11:28:05 4109

原创 PHP实现无限极分类的两种方式,递归和引用

面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类$array = array(array('id' => 1, 'pid' => 0, 'name' => '河北省'),array('id' => 2, 'pid' => 0, 'name' => '北京市'),array('id' => 3, 'pid' => 1, 'n

2018-01-10 16:26:02 36021 17

原创 面向对象的设计原则

面向对象程序设计有五大基本原则,也就是平常说的SOLID原则 S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。SRP The Single Responsibility Principle 单一职责原则 OCP The Open Closed Principle 开放封闭原则 LSP

2018-01-09 14:22:57 188

原创 PHP switch-case与if-else两个效率谁更高

如果纯粹比较数字或字符,建议使用switch,因为它只会在一开始的switch括号中取出变量值一次,然后将这个值与下面所设定的case比较,但如果使用if,每次遇到条件式时,都要取出变量值,效率的差异就是因为这个$a = 3;if($a == 1)//...else if($a == 2)//...else if($a == 3)//...上面这行代码在$a为3时,共需3次

2018-01-05 17:41:01 6274

原创 mac下快速切换php版本

前提:你的mac环境里所有的php版本都是使用brew安装的1.使用brew安装php方法➜ ~ brew install php70➜ ~ brew install php562.安装版本切换工具php-version➜ ~ brew install php-version➜ ~ source $(brew --prefix php-version)/php-vers

2018-01-05 15:47:29 4391

原创 mysql中int长度的意义

最近接手新项目,看到数据库很多int字段设置了各种各样的长度,估计是小伙伴搞错了int长度的意义,误以为int后面的数字代表的是允许存储的最大长度, 比如, 误以为 int(1) 不能存储 10. 其实在mysql里,int的长度并不会限制存储的数字范围. 比如, int 和 int(3) 的存储范围都是 -2147483648 ~ 2147483647, int unsigned 和 int(

2018-01-05 15:34:28 3550 1

原创 PHP 设计模式 简单工厂和工厂模式

工厂模式是创建型模式的一种,分为简单工厂模式,工厂模式,抽象工厂模式,简单工厂可以称之为工厂模式的一个特例先用一段简单的代码说明一下,现在假设我们是顾客,需要苹果味饮料和香蕉味饮料class AppleDrink{ function getDrinkName() { echo '苹果饮料'; }}class BananaDrink{

2018-01-02 18:37:19 1584

原创 PHP 设计模式 单例模式

单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提供这一实例下面用PHP代码实现一下/** * Created by PHPStorm. * User: tiansi * Date: 18/1/2 * Time: 下午3:40 */class S

2018-01-02 16:09:43 207

原创 关于mysql索引基数的概念

Cardinality(索引基数)是mysql索引很重要的一个概念索引基数是数据列所包含的不同值的数量。例如,某个数据列包含值1、2、3、4、5、1,那么它的基数就是5。索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果最好。如果某数据列含有很多不同的年龄,索引会很快地分辨数据行。如果某个数据列用于记录性别(只有”M”和”F”两种值),那么索引的

2017-12-29 15:06:10 10683 1

原创 数据结构学习(一)

**数据结构,是相互之间存在一种或多种特定关系的数据元素的集合 数据结构可以分为逻辑结构和物理结构**逻辑结构:是指数据对象中数据元素之间的相互关系 1.集合结构 集合结构中的数据元素除了属于同一个集合外,没有任何关系 2.线性结构 线性结构中的数据元素是一对一的结构关系 3.树形结构 树形结构的数据元素是一对多的结构关系 4.图形结构 图形结构的数据元素是多对多的结构关系物理结构

2017-12-27 17:37:09 156

原创 java学习(二)java基本语法 初识java面向对象

java环境已经安装完毕,在教程的帮助下输出了HelloWorld,开始学习java基本语法**- 大小写敏感:Java是严格大小写敏感的,这就意味着标识符Hello与hello是完全不同的概念 - 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如咱们的HelloWorld - 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若

2017-04-26 18:01:53 382

原创 java学习(一)安装java环境 输出HelloWorld

开始自学java之路,先普及几个概念,java是一门纯面向对象的解释性语言1、jdk = java development kit java开发工具包,做java开发的前提2、jvm = java virtual machine java虚拟机,java可移植的基础所在,java可在任何平台运行,就是因为jvm将java源文件解释成可供具体平台识别的机器指令3、jre = java runtime

2017-04-25 21:07:44 639

转载 mac下忘记root密码解决方法

mysql的root密码忘记了,进不去数据库,开发环境mac1、首先安装一个数据库管理软件,我用的是navicat 2、苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 3、进入终端 进入mysql的bin目录cd /usr/local/mysql/bin/登录管理员权限sudo su禁止mysql的验证功能 ./mysqld_safe --skip-grant-t

2016-03-31 10:57:52 586

原创 jQuery弹窗组件 colorbox

公司开发微信端的wap网站,因为微信浏览器的限制,对很多jquery组件支持的都不是很好,弹窗总是有这样那样的问题,试验了好几个之后,最后使用了colorbox这款jquery插件 github:https://github.com/jackmoore/colorbox将源码clone至本地,代码目录如下colorbox ➤ ls LICENSE.md 例子1

2016-01-15 18:01:56 1492

原创 sublime插件安装,配色方案

从windows下转到mac下开发后,第一个不适应就是没有IDE了,然后就开始寻找合适的编辑工具,最终在vim和sublime之间抉择,想想vim那么多的命令操作就脑袋疼,再加上sublime默认的界面就比vim要好看许多,所以就入坑了我是通过百度直接下载的,sublime2 sublime具有强大的各种扩展包,使用它首先要安装一个包管理工具 Package Control 进入sublime

2015-12-25 14:36:16 10559 1

原创 git学习和使用(二) 远程版本库的操作和一些git的概念

上篇文章基本上把git的本地版本库的操作说了个差不多,只要你试着使用git维护一个项目,基本上就可以熟悉这个流程了,现在说一下git的远程库操作使用git远程仓库,你首先得在github上注册一个帐号,git的文件传输使用了ssh保密协议,你需要创建自己电脑的ssh key。你可以先查看一下在你的用户目录下是否有 id_rsa 和 id_rsa.pub两个文件,如果有的话,就不需要生成了,如果没有的

2015-12-24 17:18:53 2605

原创 git学习和使用(一) 本地版本库的操作

前几天只是学习了git最简单的使用,今天有时间把廖雪峰老师的git教程直接看完,写点东西加强一下记忆。git的安装就不赘述了,我的开发环境是mac,直接从头开始,走一遍开发流程,我有一个项目,需要利用git做版本管理,新建一个文件夹 tiansi_git作为工作目录mkdir tiansi_git git init命令,初始化git,把该目录设置为git管理的仓库git init现在这个目录就纳入g

2015-12-15 18:02:34 2784

原创 mysql查询数据,根据条件更新到另一张表

原本的数据库有3张表travel_way :旅游线路表,存放线路的具体信息traveltag :线路标签表,存放线路目的地等信息tagrelation:标签对应表,存放线路和目的地的对应关系因为业务逻辑的改变,现在要把它们合并为一张表,把traveltag中的目的地信息插入到travel_way中。首先获取到所有线路对应的目的地,以线路ID分组,合并目的地到一行,以逗号分隔。SELECT t

2015-12-02 11:58:36 9571 1

原创 命令行执行php文件,传参

今天做数据对接,需要脱离服务器,在命令行执行php文件,获取接口数据,但是命令行执行的时候需要传参数,实验环境为ubantu,命令如下php example.php '参数'参数直接跟在文件后面,在文件里以argv数组的形式获取,argv数组官方的解释是 argv[0] 指向程序运行的全路径名 argv[1] 指向在DOS命令行中执行程序名后的第一个字符串 argv[2] 指向执行程序名后的第

2015-11-30 10:53:04 637

原创 zsh的使用和颜色配置

开始使用mac进行开发,但是同事都说我的配色太low了,用系统原生的bash,代码里啥都看不出来 于是自己从网上找到了zsh,我的系统是mac10.10.5,已经原生安装了zsh 先理解一下shell的概念,shell负责外界与linux内核的交互,接受用户的命令,转化为内核语言,传给内核,内核接受到指令后,干完活把结果返回用户,想查看本机有多少shell,可以使用命令cat /etc/shel

2015-11-26 15:44:08 22573

原创 git的初步用法

第一步,查看本地文件状态,就是看看本地哪些文件发生了更改,或者删除等等命令为git status第二步,把文件提交到​暂存区, .为选择全部文件git add .​第三步,提交文件,并附上提交信息git ​commit -m "我是提交信息"第四步,同步服务器文件到本地,为下一步提交文件到服务器做准备,以免发生老文件覆盖新文件的错误git pull​第五步,同步文件到服务器,同步到哪个分支,git

2015-11-25 18:01:43 402

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除