ruby中的多线程和函数的关键字传参

1、实现ruby中的多线程

# def test1
#   n = 1
#   if n > 10
#     puts "test1结束"
#   else
#     while true
#       sleep 2
#       puts n
#       n = n + 1
#     end
#   end
# end
#
#
# def test2
#   n = 100
#   if n > 100
#     puts "test2结束"
#   else
#     while true
#       sleep 2
#       puts n
#       n = n + 10
#     end
#   end
# end
#
# t1 = Thread.new{test1()}
# t2 = Thread.new{test2()}
#
# t1.join
# t2.join
#

2、实现ruby中的关键字传参,这里要用冒号,而不是等号

def test(a:"a1",b:"b1",c:"c1")
  puts a
  puts b
  puts c
end

test(a:"a2",c:"c2")

3、ruby中普通参数和关键字参数混合使用

def test1(d,a:"a1",b:"b1",c:"c1")
  # 这里的普通参数必须要放在前面,放在后面会报错的
  puts a
  puts b
  puts c
  puts d
end

test1(1)

test1(1,c:"c2")

4、ruby函数关键字和普通参数混用,传递一个Hash,函数的参数使用传递的值和hash中的值

args = {"a":"a11","b":"b11","c":"c11"}

def test2(d,a:"a1",b:"b1",c:"c1")
  # 这里的普通参数必须要放在前面,放在后面会报错的
  puts "test22222222222222"
  puts a
  puts b
  puts c
  puts d
end

5、ruby函数关键字参数和普通参数混用,函数使用默认值和hash两种

args = {"a":"a11","c":"c11"}

def test3(d,a:"a1",b:"b1",c:"c1")
  # 这里的普通参数必须要放在前面,放在后面会报错的
  puts "test333333333333"
  puts a
  puts b
  puts c
  puts d
end

test3(2,args)

原文地址:https://www.cnblogs.com/bainianminguo/p/11283909.html

时间: 2024-11-14 14:09:03

ruby中的多线程和函数的关键字传参的相关文章

python函数的动态传参.作用域与命名空间

一.动态传参1.*表示动态传参. 可以接受所有的位置参数传参的时候自动的把实参打包成元组 交给形参 def chi(*food): print(food) chi() # 动态传参可以不传参数 chi(good_food = "胡辣汤") # 关键字传参 chi("胡辣汤", "疙瘩汤", "西红柿鸡蛋汤") chi("大猪蹄子","大汉堡","薯条","圣

10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量

今日主要内容 1. 动态传参(重点) *, ** *, ** : 形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散 列表, 字符串, 元素 -> * 字典 -> ** 形参顺序(重点): 位置, *args, 默认值, **kwargs 无敌传参 def func(*args, **kwargs): arguments参数 keyword-arguments关键字参数 pass 2. 作用域和名称空间 名称空间: 用来存放名字(变量, 函数名, 类名, 引

学习笔记分享(1),Http协议中Post方式与Get方式的传参形式

在Http协议中post请求与get请求的一些差异,只是其中一些.当时迷惑了一阵子,新手可以避坑. 传参形式: post: post请求中请求参数是在请求体中传递的,说白了也就是内容中. get: get请求中请求参数是通过url拼接的方式传递的(http://www.bilchin.com/message?name=abc&password=123) 以get这种方式传参需要注意,参数中不能有空格等一些会引起歧义的符号,所以要对拼接完的url进行URLEncode.encode()编码哦. -

有关匿名函数执行与传参

$(document).ready(function(){ var box = function(){ return 'abcd1'; }; //将匿名函数赋值给变量,不执行函数,此时box是函数指针 alert(box());//通过函数指针调用函数 (function(){alert('abcd2');})(); //匿名函数的执行,将function(){alert('abcd2');}看着函数体, //后面的()是给匿名函数传递的参数 var box = (function(){ //将

bash函数定义/使用/传参…

函数:function, 功能     过程式编程,代码重用         模块化编程         简洁             语法:         function f_name {             函数体         }         或者         f_name() {             函数体         }         调用:使用函数名         函数名出现的地方,会被自动替换为函数代码:             练习:利用函数改写此前

vue中单纯跳页及跳页传参的方法

1.跳页方法 <router-link to="文件路径">  </router-link> 相当于a标签的作用 2.跳页传值方法 A页中的配置 <button @click="sub()">首页</button> //给按钮一个绑定单机事件 methods: { sub(){ this.$router.push({ name: '路由配置中的name', params: { routeParam: this.data

函数封装的传参、判断处理—— JS学习笔记2015-6-29(第70天)

2段相似的代码,如何封装成一个函数? 1).先找出不同的地方: 2).看看这些不同地方或者当成参数传递进去,或者做个判断: 数字是可以传递的,比较符号是无法传递的 封装前的代码:(有很多冗余.重复的地方) 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5

微信小程序 功能函数 点击传参和页面

// 商品详情页跳转函数 detailInto: function (e) { // console.log() var change = e.currentTarget.dataset.id; wx.navigateTo({ url: '../detail/detail?id=' + change }) }, //接收的页面 onLoad: function (opt) { var selectnum= this.data.selectnum; selectnum.sq = opt.key;

air 调用jsfl 执行对应函数,并传参

jsflPath = "WindowSWF/dt_tool_jsfl/" + event.item.fileName+".jsfl"; var element_arr = event.item.element.split(","); var element_str:String = ""; var elementLen_num:Number = element_arr.length; if (elementLen_num ==