ruby-on-rails - 多个方法(?)和对象(即 num.to_s.chars.map{|x| x.to_i**2}.join.to_i)的规则是什么?
问题描述
这样的结构规则是什么?我是编程新手,我不知道“.something's”(方法?)的技术术语。
但是,在此示例中,有 5 个(to_s、chars、map、join 和 to_i)。
num.to_s.chars.map{|x| x.to_i**2}.join.to_i
基本上,我想知道的是,构建这些的结构是什么?我试过做一些类似的事情,但收到了错误。那么,这些是否有特定的顺序或结构?并且是正确的术语方法吗?
解决方案
理想情况下,您应该首先了解 ruby 语言的基础知识。Ruby 是最容易掌握的语言之一。查看https://try.ruby-lang.org,您将更好地理解以下内容。
这是一个表达式,其中每个表达式的结果都会调用一系列方法。
假设num
是integer
,请参阅下面的评论
num
.to_s # to_s on any ruby object converts it to string
.chars # returns individual characters in string array
.map { |x| # iterates over each number character in array
x.to_i**2 # and convert each character to integer and sqare it( ** is exponent operator)
}
.join # map returns new array and join/conctenate each number
.to_i # convert it back to integer
所以如果 num 是123
,它返回149
基本上每个数字都是平方的。
可以在irb中一一运行这段代码自己试试
推荐阅读
- sql - 根据特定条件从表中选择“描述”
- bash - 如何在基于 BusyBox 的系统上将密码传递给 su?
- c++ - 表面到纹理转换中的 SDL 问题
- javascript - InputEvent.dataTransfer 始终为空
- google-cloud-speech - 如何在 Google Speech to Text (GoogleSTT) 中禁用自动格式编号
- javascript - 为什么调用 RedirectToAction 时我的网页没有刷新?
- django - 如何在 django 中使用类别过滤图像?
- git - 有没有办法“git diff”谷歌驱动器文件夹?
- java - project.json文件中的nsis配置没有生效
- java - 无法使用 FEST/swing 在辅助窗口上执行操作