![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象语言
CamelGem
这个作者很懒,什么都没留下…
展开
-
Golang编程示例part2
文章目录定时器打点器线程池速率限制原子计数器互斥锁状态协程排序使用函数自定义排序panicdefer组合函数字符串函数字符串格式化正则表达式JSON解析XML解析时间戳时间格式化随机数数字解析url解析SHA1散列读文件写文件过滤行文件路径文件目录临时文件和目录命令行参数命令行标志命令行子命令环境变量HTTP客户端HTTP服务端生成进程执行进程信号退出定时器package mainimport ( "fmt" "time")func main() { //创建一个定时器对象,原创 2020-09-29 19:14:28 · 305 阅读 · 0 评论 -
Golang编程示例part1
文章目录数据类型单引号双引号和反引号变量for循环if/elseswitch/case数组切片关联数组range函数多返回值函数变参函数闭包递归指针结构体方法接口错误处理协程通道通道同步单向通道通道关闭通道遍历通道缓冲通道选择器数据类型package main目录 数据类型单引号双引号和反引号变量for循环if/elseswitch/case数组切片关联数组range函数多返回值函数变参函数闭包递归指针结构体方法接口错误处理 协程通道通道同步单向通道通道关闭通道遍历通道缓冲通道选择器import "原创 2020-09-29 12:46:32 · 568 阅读 · 0 评论 -
JavaScript中的嵌套try...catch示例
JavaScript中嵌套的try…catch// 第一种情况try { try { throw new Error('oops'); //=> 抛出一个error对象,对象的message为'error' } finally { console.log('finally'); //=> 无论是否抛出异常都会执行 }}catch (ex) { //=> 捕获到内部try语句抛出的异常对象 console.e原创 2020-08-08 00:06:39 · 1568 阅读 · 0 评论 -
JavaScript中的try..catch示例
try … catch示例function foo(num) { // 检查传入的参数是否为数值 if (typeof num !== "Number") { throw { type: "Value error", info: "The value is not right, it should be a number!" }; } else { return num; }}原创 2020-08-07 23:43:25 · 234 阅读 · 0 评论 -
JavaScript中的布尔值
JavaScript中的True与false值falseundefinednull0NaN空字符串("")除了上述值以外,其他的任何值都为真,包括true和"true".当传递给条件语句所有其他的值,包括所有对象会被计算为真 。请不要混淆原始的布尔值true和false 与 Boolean对象的真和假。例如:var b = new Boolean(false);if (b) //结果视为真if (b == true) // 结果视为假...原创 2020-08-07 21:37:21 · 506 阅读 · 0 评论 -
golang中指针接收者和值接收者的区别
一般来说,我们通常会在实施接口的时候,选择用值接收者,其实指定指针接收者也是允许的。但是当实施接口的时候使用指针接收者与使用值接收者是由细微差别的。通过以下的示例来了解一下:package mainimport "fmt"type Describer interface { Describe()}type Person struct { name string age int}func (p Person) Describe() { //implem原创 2020-07-11 10:46:48 · 728 阅读 · 0 评论 -
golang中的类型断言和类型切换
类型断言作用:用于提取一个接口底层值。语法:i.(T), 用来获取混合类型是T的接口的底层值,让我们来看一下例子:package mainimport ( "fmt")func assert(i interface{}) { s := i.(int) //get the underlying int value from i fmt.Println(s)}func main() { var s interface{} = 56 asse原创 2020-07-11 09:43:31 · 446 阅读 · 0 评论 -
乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Jav转载 2020-06-27 21:48:33 · 105 阅读 · 0 评论 -
Perl中Data::Dumper模块用法
Data::Dumper的用法use Data::Dumper;my ($foo, $bar) = ([1, 2, 3], [3, 4, 5]);print Dumper($foo, $bar); # 正常输出引用数据结构print Data::Dumper->Dump([ $foo, $bar ], [ qw(foo *ary) ]);# configuration variables{ local $Data::Dumper::Purity = 1; eval D原创 2020-06-16 22:03:14 · 3858 阅读 · 2 评论 -
Perl中的方法查找顺序
Perl中方法查找的顺序在一个类型为classname的调用者上调用一个名为methname的方法时,Perl会尝试6种不同的方法来找到要调用的子例程:首先,Perl在调用者自己的包中查找一个名为classname::methname的子例程。如果失败,则继续进入第二步查找。接下来,Perl检查从基类继承的方法,在@classname::ISA中所列出的所有的parent包中查找parent::methname子例程。这里会从左向右采用深度优先方式递归查找。递归可以确保租父类,曾祖父类,曾曾祖父类等原创 2020-06-10 22:28:39 · 279 阅读 · 0 评论 -
Perl中包的概念
包的切换当前包既是一个编译时概念也是一个运行时概念。大多数变量名的查找都发生在编译时,不过对符号引用解引用时,以及在eval下编译新代码时,会发生运行时查找。未用my声明的所有变量都与一个包关联,甚至类似$_和%SIG等看上去无所不在的变量也是如此。其他变量都使用当前包,除非加了限定:$name = "Amelia";$Animal::name = "Camel";package声明会改变作用域其余部分(块,文件或eval,要看哪一个最先出现)的默认包,或者直到出现同级的另一个包声明,它会覆盖之原创 2020-06-10 22:11:43 · 299 阅读 · 0 评论 -
Perl中的符号表的使用与说明
Perl中的符号表概念通常来说,我们写一段代码需要为它提供一个命名空间,这样变量和函数才不会与其他人的变量或者函数产生冲突,反之亦然。包是独立于文件的。一个文件通常可以包含多个包,或者一个包可以跨多个文件。通俗来讲包就是perl的模块,通常以.pm结尾,并且在定义一个包时,文件名与包名相同。也有极个别情况,文件名与包名不相同,通常发生在一个文件中定义了多个包,所以它有好几个包名,因此文件名与包名不相同。典型的例子就是VMware官方的PerlSDK开发模块。通常在使用模块化编程时,我们需要学习如原创 2020-06-09 23:47:33 · 831 阅读 · 1 评论 -
python中模块和包的导入以及使用方式
模块如果从Python解释器退出并再次输入,则所做的定义(函数和变量)将丢失。因此,如果要编写更长的程序,最好使用文本编辑器为解释器准备输入,然后使用该文件作为输入运行它。这称为创建脚本。随着程序时间的延长,你可能需要将其拆分为多个文件,以便于维护。你可能还想使用在多个程序中编写的便捷功能,而无需将其定义复制到每个程序中。为此,Python提供了一种将定义放入文件中并在脚本或解释器的交互式实例中使用它们的方法。这样的文件称为模块;可以将模块中的定义导入其他模块或主模块中。模块是包含Python定义和语原创 2020-05-30 13:25:52 · 1449 阅读 · 0 评论 -
python中的数据结构及其常见用法
数据结构list(列表)# list.append(x)squares = [1, 2, 3, 4 ,5, 6]squares.append(10)print(squares) # [1, 2, 3, 4, 5, 6, 10]# list.extend(iterable)iterable = [x * 2 for x in squares]squares.extend(iterable)print(squares) # [1, 2, 3, 4, 5, 6, 10, 2, 4, 6,原创 2020-05-29 22:19:57 · 435 阅读 · 1 评论 -
python中nonlocal和global的作用与用法
# global和nonlocal"""一个函数在执行时会产生一个新的符号表,用于保存函数的本地变量。更准确的说,在函数调用时,函数会优先查找本地符号表中的变量,因为所有赋值的变量都被存储在本地符号表中。如果本地符号表没有找到该变量,则继续查找包围函数的作用域中的本地符号表,要是依然没有找到则继续查找全局符号表, 要是依然没找到,则查找内建表。因此对全局变量和在包围函数的作用域中的变量时无法在函数中被直接赋值的,如果要赋值,必须用global或nonlocal声明"""x = 11 # 全原创 2020-05-26 08:23:35 · 655 阅读 · 0 评论 -
ruby中定义一个方法时,各种参数的定义方式
# 位置参数def add_values(a, b) a + bend# 默认位置参数def add_values2(a = 1, b = 2, c) a + b + cenddef add_values3(a = 1, b = a) # 参数值总是从左到右被计算的 a + benddef add_values4(a = b, b = 1) # 除非定义了一个名字为b的方法,否则在默认参数执行时会报错 a + bendp add_values4 # ra.原创 2020-05-25 22:50:43 · 706 阅读 · 0 评论 -
Perl中如何重载一个操作符
overload(重载)描述:Perl的重载简而言之就是平时如果我们需要用一些常规操作符去操作对象的话,会得到与正常结果不同的结果。例如将一个对象与一个数字相加:# 重载前package MyClass;use feature qw(say);sub new { shift; bless \(my $var = shift) => __PACKAGE__;}sub add { my ($first, $second) = @_; $$first +原创 2020-05-23 16:04:09 · 580 阅读 · 0 评论 -
Ruby中方法的使用以及方法的参数传递
关于ruby中方法的一些知识拓展一个方法的返回值通常是方法中最后一个表达式的值,但是如果最后一个表达式的值不存在,则方法返回的值为nil。如果一个方法最后一个表达式产生多个值,返回的值需要用逗号分隔开,最后方法会以数组的形式返回多个值。为了是代码更加清晰,可以将返回的值显示的放入数组中然后返回。见下面示例:def name puts "Hello World!"endp na...原创 2020-04-27 20:09:33 · 2580 阅读 · 0 评论 -
Ruby中的类和模块和变量使用说明
对象, 变量, 常量和类在ruby中表现数据的基本单位称为对象。常见对象与其所属的类对象类数值Numeric字符串String散列Hash正则表达式Regex文件File符号Symbol数组Array此外还有range和execption对象等变量分为以下几种:全局变量: 以$来表示实例变量: 以@开头来表...原创 2020-04-18 23:26:01 · 962 阅读 · 0 评论