-> 这个符号可以替换lambda
%i 生成符号数组 %i(foor bar baz) #[:foo,:bar:baz]
def 定义方法 eg: def foo(x: 1); puts; end
hash {a:1,b:2}替换{:a=>1,:b=>2}
r 数字后面接r表示有理数 1.2r
Array.try_convert 转换成数组对象
Array.rotate 通过转动产生数组,将第一个元素放到最后,理解成左轮-手-枪-旋转
Array.keep_if 删除使代码块结果为false的元素
Array#sample 选择一个随机元素
Array#repeated_permutation (n),使用原来数组的元素,组合成数组,数组的元素数是n,然后将这些数组再装入一个数组中返回,元素可以重复使用

Array#repeated_combination (n),使用原来数组的元素,组合成数组,数组的元素数是n,然后将这些数组再装入一个数组中返回,元素不可以重复使用

eg:
a = [1, 2, 3]
p a.repeated_combination(2).to_a # [[1, 1], [1, 2], [1, 3], [2, 2], [2, 3], [3, 3]]
p a.repeated_permutation(2).to_a #[[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]

Hash#to_h 转换成hash对象
Hash#default_proc= 当取某个key时不能取到给一个默认值
Hash#key(value) 通过值得到key
Hash#keep_if 删除代码块为false的键值对

Hash#assoc 使用==搜索与给定的key相当的键值对
Hash#rassoc 使用==搜索与给定的value相当的键值对
Hash#flatten 将hash变成数组

Hash#compare_by_identity 让map的key的哈希值作为他们的值的唯一key

h1 = { "a" => 100, "b" => 200, :c => "c" }
h1["a"] #=> 100
h1.compare_by_identity 调用后
h1.compare_by_identity? #=> true
h1["a".dup] #=> nil # different objects. 使用a的拷贝取不到了 ,拷贝后的字符串“a”是另一个对象
h1[:c] #=> "c" # same symbols are all same. 符号总是唯一

Enumerable#to_h 转换成hash结构
Enumerable#flat_map 数组每个元素扔进块里计算,计算后返回的如果是数组遍历这个数组每个元素取出来,统一放回一个数组再返回
[1, 2, 3, 4].flat_map { |e| [e, -e] } #=> [1, -1, 2, -2, 3, -3, 4, -4]
[[1, 2], [3, 4]].flat_map { |e| e + [100] } #=> [1, 2, 100, 3, 4, 100]

Enumerable#each_entry 包含yield的语句就是迭代器方法,each_entry调用迭代器 将迭代其中yeild返回的数据,传入给定的代码快计算,如果yeild返回多个数据,这多个数据就是一数组形式传入代码快

class Foo
include Enumerable
def each
yield 1
yield 1, 2
yield
end
end
Foo.new.each_entry{ |o| p o }

Enumerable#each_with_objec 将每个元素传入代码快计算,返回给定的初始对象

evens = (1..10).each_with_object([]) { |i, a| a << i*2 }

#=> [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

Enumerable#chunk 根据代码快结果。来判断每个元素是否放在一起返回

[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5].chunk { |n|
n.even?
}.each { |even, ary|
p [even, ary]
}
#=> [false, [3, 1]]
# [true, [4]]
# [false, [1, 5, 9]]
# [true, [2, 6]]
# [false, [5, 3, 5]]

解释上面代码: 3被取出来判断时候是偶数,返回真假,如果是假,even=false,3放到数组里,此时数组是[3]。然后接着判断 1还是假,再放到数组里[3,1],
判断到4是偶数,even=true,将4放到新数组里[4],将前面的[false,[3,1]]打印出来

Enumerable#slice_before 对于每个被chunked的元素依据真假,返回一个集合里,给这个创建一个枚举器

a = [0, 2, 3, 4, 6, 7, 9]
prev = a[0]
p a.slice_before { |e|
prev, prev2 = e, prev
prev2 + 1 != e
}.map { |es|
es.length <= 2 ? es.join(",") : "#{es.first}-#{es.last}"
}.join(",")
#=> "0,2-4,6,7,9"

解释: 1 prev=a[0] #这时prev为0
2 进入 { |e|
prev, prev2 = e, prev
prev2 + 1 != e
}
3 pre =0,prev2 =0
4 prev2 + 1 != e 为假
5 将e也就是0放进数组,[0]
6 当便利到2时, prev2 + 1 != e 为假,然后2放入新数组,[2],

当chunk后面块结束后 是下面形式

[0]
[2, 3, 4]
[6, 7]
[9]
nil

然后返回这个迭代器,调用map 后面的块

Enumerable#lazy 直到需要的时候再运行枚举器

Kernel#dir 文件的目录名

Kernel#callee 当前方法名作为符号返回

Module#class_variable_get 得到类变量的值

Module#class_variable_set 设置类变量的值
Module#remove_class_variable 移除实例变量

Module#public_constant 返回一个包含公有常量的列表
Module#private_constant 返回一个包含私有常量的列表

Module#singleton_class? 判断是否是singleton类

Module#prepend include的可替换方法

Module#public_instance_method 返回包含实例方法的数组

Object#!~ 如果两个对象相当返回真

Object#singleton_class 返回对象singleton类
Object#untrust 标记一个对象不受信任
Object#untrusted? 如果对象是不受信任返回真
Object#trust 从对象身上移除不受信任标记

Object#remove_instance_vari
able 从对象身上移除实例变量

Object#public_send 调用公共方法
Object#public_method 类似method方法,只查找public方法
Range#bsearch 数组使用二分查找

Socket.getifaddrs网络访问接口

String#clear 将字符串清空

String#chr 返回字符串开头字符

String#encode 将字符串按照某种编码方式编码

String#getbyte 将字符换位整数返回

String#setbyte 使用整数设置字符

String#byteslice 截取字符

String#scrub 移除无效的字符序列

ruby api 2.1新增改变的更多相关文章

  1. ruby for in 循环中改变i的值无效

    ruby for in 循环中改变i的值无效 for j in 1..5 puts "#{j}hehe" j = j + 2 #break end 在循环中,使用j = j + 2 ...

  2. ABP理论学习之Web API控制器(新增)

    返回总目录 本篇目录 介绍 AbpApiController基类 本地化 审计日志 授权 工作单元 其他 介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器 ...

  3. java中elasticsearch7.x关于nested类型的api使用,新增+更新

    0,定义esHighClient 1 @Configuration 2 public class RestClientConfig { 3 4 //类似:200.188.22.20:9300,200. ...

  4. JavaScript API 设计原则

    网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> 好的 API 设计:在自描述的同时,达到抽象的目标. 设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档, ...

  5. C++ API设计

    <C++ API设计> 基本信息 作者: (美)Martin Reddy    译者: 刘晓娜 臧秀涛 林健 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153 ...

  6. API管理平台XXL-API

    <API管理平台XXL-API> 一.简介 1.1 概述 XXL-API是一个简洁易用API管理平台,提供API的"管理"."文档"."M ...

  7. ASP.NET Core 实战:构建带有版本控制的 API 接口

    一.前言 在上一篇的文章中,主要是搭建了我们的开发环境,同时创建了我们的项目模板框架.在整个前后端分离的项目中,后端的 API 接口至关重要,它是前端与后端之间进行沟通的媒介,如何构建一个 “好用” ...

  8. Android 9 新功能 及 API 介绍(提供了实用的模块化的功能支持,包括 人工智能)

      Android 9(API 级别 28)为用户和开发者引入了众多新特性和新功能. 本文重点介绍面向开发者的新功能. 要了解新 API,请阅读 API 差异报告或访问 Android API 参考. ...

  9. Ruby 对多语言的支持

    这是一篇翻译文章,原文链接 http://blog.grayproductions.net/articles/understanding_m17n.原文是一个系列,翻译过来整合成了一篇文章,对文章内容 ...

随机推荐

  1. Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结

    一.  DBWR写磁盘数据触发条件 1. 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header[空闲缓冲区]时,如果已经扫描的buffer header的数量到达一定的 ...

  2. C#中正则表达式的使用

    目前为止,许多编程语言和工具都包含对正则表达式的支持,C#也不例外,C#基础类库中包含有一个命名空间(System.Text.RegularExpressions)和一系列可以充分发挥规则表达式威力的 ...

  3. mysql中的semi-join

    1. 背景介绍 什么是semi-join? 所谓的semi-join是指semi-join子查询. 当一张表在另一张表找到匹配的记录之后,半连接(semi-jion)返回第一张表中的记录.与条件连接相 ...

  4. java-源码下载

    jdk7 下载: http://download.java.net/openjdk/jdk7/ jdk8 下载: http://download.java.net/openjdk/jdk8/

  5. .NET垃圾回收 – 非托管资源

    前面一篇文章介绍了垃圾回收的基本工作原理,垃圾回收器并不是可以管理内存中的所有资源.对于所有的托管资源都将有.NET垃圾回收机制来释放,但是,对于一些非托管资源,我们就需要自己编写代码来清理这类资源了 ...

  6. Linux-Hostname-details

    转自:http://www.cnblogs.com/kerrycode/p/3595724.html 当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问题 ...

  7. 一种JavaScript 类的设计模式

    一种JavaScript 类的设计模式尽管前面介绍了如何定义一个类,如何初始化一个类的实例,但既可以在function定义的函数体中添加成员,又可以用prototype 定义类的成员,代码显的很混乱, ...

  8. selenium+python自动化之CSS定位

    一.css:属性定位 1.css可以通过元素的id.class.标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input id="kw" class ...

  9. 日期转换类 DateConverter.java

    package com.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.D ...

  10. Android 检测网络连接状态

    Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置. 首先,要判断网络状态,需要有相应的权限,下面为权限代码(Androi ...