变量

Go语言开发实践规范汇总

半腔热情 提交于 2020-02-23 00:16:21
统一规范篇 合理规划目录 本篇主要描述了公司内部同事都必须遵守的一些开发规矩,如统一开发空间,既使用统一的开发工具来保证代码最后的格式的统一,开发中对文件和代码长度的控制,必须经过go语言自带的检测机制等。 【原则1.1】合理规划目录,一个目录中只包含一个包(实现一个模块的功能),如果模块功能复杂考虑拆分子模块,或者拆分目录。 GOPATH设置 【建议1.2】使用单一的 GOPATH import 规范 【规则1.3.1】在非测试文件(*_test.go)中,禁止使用 . 来简化导入包的对象调用。 【规则1.3.2】禁止使用相对路径导入(./subpackage),所有导入路径必须符合 go get 标准。 【建议1.3.3】建议使用goimports工具或者IDE工具来管理多行import 代码风格 【规则1.4.1】提交代码时,必须使用gofmt对代码进行格式化。 【规则1.4.2】提交代码时,必须使用golint对代码进行检查。 【建议1.4.3】提交代码前,必须使用go vet对代码进行检查。 大小约定 【建议1.5.1】单个文件长度不超过500行。 【建议1.5.2】单个函数长度不超过50行。 【规则1.5.3】单个函数圈复杂度最好不要超过10,禁止超过15。 【规则1.5.4】单行语句不能过长,如不能拆分需要分行写。一行最多120个字符。 【建议1.5.5

php判断变量类型常用方法

北慕城南 提交于 2020-02-22 23:09:16
php 判断变量类型常用的函数主要有下列几个: gettype()、is_array()、is_bool()、is_float()、is_double()、is_integer()、is_null()、is_numeric()、is_object()、is_resource()、is_scalar() 和 is_string() 现在让我们了解下他们的具体的使用方法 gettype() 返回 PHP 变量的类型,返回的字符串的可能值为以下几种: boolean(从 PHP 4 起) integer double(由于历史原因,如果是 float 则返回double,而不是float) string array object resource(从 PHP 4 起) NULL(从 PHP 4 起) user function(只用于 PHP 3,现已停用) unknown type 注意: 对于 PHP 4及以上,你应该使用 function_exists() 和 method_exists() 取代先前将 gettype() 作用于函数的用法 。 这个 函数 大家应该很少用,其实对于这个函数也尽量不要用。php手册的建议是:不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的,所以尽量使用 is_

PHP 判断数据类型

允我心安 提交于 2020-02-22 23:03:04
isset (): // 变量是否已经声明 empty (): // 变量是否为空 defined (): // 常量是 否已经定义 define() array_key_exists ( mixed key , array search): // 检查给定的键名或索引是否存在于数组中 is_numeric ( mixed var ): // 检测变量是 否为数字或数字字符串 is_bool (): // 检测变量是否是布尔型 is_float (): // 检测变量是否是浮点型 和is_double,is_real()都一样的用法 is_int () : // 检测变量是否是整数 is_integer() 一样的 用法 is_string (): // 检测变量是否是字符串 is_object (): // 检测变量是否是一个对象 is_array (): // 检测变量是否是数组 is_null (): // 检测变量是否为 NULL 值是否是NULL大小写敏感 来源: https://www.cnblogs.com/vlone/p/4590735.html

雷林鹏分享:PHP 可用的函数

不问归期 提交于 2020-02-22 22:59:18
  PHP 提供了很多可用的标准函数,下表列出了常用的几个:   函数描述   boolval获取变量的布尔值   debug_zval_dump查看一个变量在zend引擎中的引用计数、类型信息   doublevalfloatval 的别名   empty检查一个变量是否为空   floatval获取变量的浮点值   get_defined_vars返回由所有已定义变量所组成的数组   get_resource_type返回资源(resource)类型   gettype获取变量的类型   import_request_variables将 GET/POST/Cookie 变量导入到全局作用域中   intval获取变量的整数值   is_array检测变量是否是数组   is_bool检测变量是否是布尔型   is_callable检测参数是否为合法的可调用结构   is_doubleis_float 的别名   is_float检测变量是否是浮点型   is_int检测变量是否是整数   is_integeris_int 的别名   is_iterable检测变量的内容是否是一个可迭代的值   is_longis_int 的别名   is_null检测变量是否为 NULL   is_numeric检测变量是否为数字或数字字符串   is_object检测变量是否是一个对象  

变量常量

与世无争的帅哥 提交于 2020-02-22 22:45:01
1.变量就是放数据的地方 变量定义的一般形式: <变量类型名称><变量名称>; 一行里可以定义多个变量 如:int price; int amount; int price,amount; 变量的名字有一个专业术语叫标识符, 标识符有自己的规则:只能由字母、数字和下划线组成,数字不能开头,C语言中的关键字(有的地方叫保留字)不可以用做标识符 2.C语言是一种有类型的语言,数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据 程序运行过程中不能改变变量的类型 3.常量 int change=100-price; 会变的是变量如price,change.不会变的是常量如,直接写在程序里的叫直接量如100 更好的方式,是定义一个常量,而不是把100直接写在那 const int AMOUNT=100;//这也是C99写法 之后直接用int change=AMOUNT-price; 这样做有很多好处,不如别人看到100不知道是什么,但是看到AMOUNT就会知道是金额 用有意义的名字,更容易让别人理解你的这个数字是什么 第二个好处,容易修改,定义在前面很容易就能找到AMOUNT const是一个修饰符,放在一个变量前面,表示这个变量不能被修改,一定要被赋初值,初始化完之后不可再做任何赋值的操作 一般对一个const的变量,变量名全大写,用来强调它是const的

项目重构

对着背影说爱祢 提交于 2020-02-22 22:18:33
背景 :函数上千行代码,类巨大,高耦合。业务发展到一定阶段,原来的程序设计不能满足业务需求,或者经过多遍更改后,存在大量冗余的逻辑代码;新的架构设计,进行业务拆分。 重构是在不改变项目现有的业务逻辑或者代码逻辑的基础上对程序进一步提炼或者扩展,使其结构化,代码规范化,弱耦合。非常重要的一点。 糟糕的类型: 1)重复代码; 2)过长的函数(一般超过200行),需要积极的拆分子函数; 3)过大的类,类越大,职责就越多,导致类产生的实例也会越多。同时,职责越多的类,其修改后影响也就越大。 4)过长的参数列表,如果参数过多,或者变化太过频繁,考虑用对象替换参数列表; 5)发散式变化,如果类经常在不同的方向上发生变化,考虑将类拆分。 6)散弹式修改,与发散式变化刚好相反,如果遇到某种变化要修改很多地方,可以考虑将变化的抽到同一个类中。 7)依恋情结,就是如果某个函数功能需要调用另一个类中的大半变化,可以考虑将这个函数抽到变化的类中。 8)数据泥团,数据项总是喜欢成群结队的聚在一起,可以考虑对数据项抽象对象。 9)平行继承体系,就是为某个类增加一个子类的时候,也必须为另一个类增加子类,这时候可以考虑让一个继承体系引用另一个继承体系。 10)冗赘类 11)夸夸其谈的未来性,就是设计的时候过多考虑未来,导致现有的类设计复杂 12)过度耦合的消息链。 I. 小步前进,频繁测试 1)重新提炼函数

Go语言基础之变量和常量

旧街凉风 提交于 2020-02-22 21:20:31
1 为什么需要变量 联想到现实中,任何事物都是变化的,如果想用程序实现对一个事情的描述,那么久的用一些变化的量去描述这个事情中的一些变化的属性,比如说人类的身高、年龄等,这些量都是随着时间变化的,或者是不同的人用不同身高和年龄。所以说,要使用变量去对这些属性进行描述。 变量是程序的基本组成单位。我们都知道程序都是对数据进行处理,那么这些数据在程序运行的过程就是存储在变量中,在Golang语言中一个变量存储一种类型的数据,程序在每次运行时变量中可能存储的是不相同的数据。 2 Golang变量介绍 2.1 变量的概念 在数学概念中,变量(variable)表示没有固定值且可改变的数。从计算机视角来说,变量相当于内存中一段或多段数据存储空间的表示。可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量(值)。 作为静态类型语言,Go变量总是有固定的数据类型,类型决定了变量内存的长度和存储格式。我们只能修改变量值,无法改变类型。 2.2 变量的使用步骤 声明变量(定义变量) 变量赋值 使用变量 在Golang中,既支持先声明变量,后给变量赋值;又支持在声明变量时给变量赋值。 2.3 关键字var定义变量 用关键字var定义变量 var x int //自动初始化为0 var y = false //自动推断为bool类型 一次定义多个变量 var

静态成员变量和成员函数

[亡魂溺海] 提交于 2020-02-22 19:09:50
  若将成员变量声明为static,则为静态成员变量,与一般的成员变量不同,无论建立多少对象,都只有一个静态成员变量的拷贝,静态成员变量属于一个类,所有对象 共享 。静态变量在编译阶段就分配了空间,对象还没创建时就已经分配了空间,放到 全局静态区 。 静态成员变量   注意事项 :(1)最好是类内声明,类外初始化(以免类名访问静态成员访问不到);(2)无论公有,私有,静态成员都可以在类外定义,但私有成员仍有访问权限;(3)非静态成员类外不能初始化;(4)静态成员数据是共享的。 1 class Person{ 2 public: 3 static int m_age;//静态成员变量,会共享数据,对象保有的是最后一次修改的值 4 //最好类内声明,类外初始化 5 6 //静态成员建议在类外进行初始化,但在类内也可以初始化,只是通过类名访问静态成员的属性时,访问不到 7 //所以一般不这么做 8 public: 9 Person(){ 10 m_age = 10; 11 } 12 13 private: 14 int other; 15 static int m_other; 16 }; 17 int Person::m_age = 0; 18 int Person::other = 10; //非静态成员不能在类外部定义 19 int Person::m_other = 20; /

01 赋值运算符补充

女生的网名这么多〃 提交于 2020-02-22 18:10:14
01 赋值运算符补充 一、增量赋值 day02中已经提到: https://www.cnblogs.com/yang1333/p/12340625.html 这里就一笔带过,简单举一个例子 x = 1 x += 1 # 等同于x = x + 1 二、交叉赋值 中间变量交换法 # 定义变量 a = 10 b = 20 # 交换 # 1、把b赋值给swap,swap和b同时指向一个值20 # 2、再把a赋值给b,b等于10,原来的a门牌号接触于原来值20的关联 # 3、最后把swap与之相关联的值10赋值给变量a,a就是20 swap = b # swap = 20 b = a # b = 10 a = swap # a = 20 等号赋值颠倒法 a,b = b,a 三、链式赋值 多个变量命,同时指定一个值 # low写法 a = 10 b = a c = b d = c # 链式赋值 a = b = c = d = 10 四、解压赋值 只取左边 # 解压列表 salaries = [33, 44, 55, 66, 77] a, b, c, *_ = salaries print(a, b, c, _) # 33 44 55 [66, 77] # 解压字符串 string = '我真的帅!' x, y, z, *_ = string print(x, y, z, _) # 我 真 的

配置JDK环境变量配置及path和classpath的作用

帅比萌擦擦* 提交于 2020-02-22 17:09:32
1、环境变量配置 用鼠标右击“我的电脑”->属性->高级->环境变量 JAVA_HOME :D:\Program Files\Java\jdk1.6.0_12(JDK安装路径) Path :%JAVA_HOME%\bin;(若已经有Path项,无须另外新建,直接在后面加,但需用;与前面已有的项分隔开) CLASSPATH :.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 其中“.”表示当前路径 测试环境变量是否设置成功:运行->cmd->输入javac 如果出现如下信息: 用法:javac <选项> <源文件> 其中,可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn 不生成任何警告 -verbose 输出有关编译器正在执行的操作的消息 -deprecation 输出使用已过时的 API 的源位置 -classpath <路径> 指定查找用户类文件的位置 -cp <路径> 指定查找用户类文件的位置 -sourcepath <路径> 指定查找输入源文件的位置 -bootclasspath <路径> 覆盖引导类文件的位置 -extdirs <目录> 覆盖安装的扩展目录的位置