请参阅以下输出:
1.9.3p194 :001 > player = Player.randomize_for_market
=> #<Player id: nil, name: "Gale Bridges", age: 19, energy: 100, attack: 6, defense: 4, stamina: 5, goal_keeping: 3, power: 4, accuracy: 5, speed: 5, short_pass: 5, ball_controll: 4, long_pass: 6, regain_ball: 5, contract_id: nil, created_at: nil, updated_at: nil>
1.9.3p194 :002 > player.save!
(0.2ms) BEGIN
SQL (20.5ms) INSERT INTO "players" ("accuracy", "age", "attack", "ball_controll", "contract_id", "created_at", "defense", "energy", "goal_keeping", "long_pass", "name", "power", "regain_ball", "short_pass", "speed", "stamina", "updated_at") VALUES ($1, $2, $3, $4, $5, …Run Code Online (Sandbox Code Playgroud) 使用jQuery,你可以做类似的事情
[1,2,3].each(my_func)
Run Code Online (Sandbox Code Playgroud)
在my_func里面,如果没有接收参数,你可以用变量引用当前数字this.
现在让我们说我想再次为一个元素调用my_func.我可以这样做:
[1].each(my_func)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法再次为一个元素调用该函数?
require 可以执行本地定义的函数吗?我想描述我需要的最简单的方法就是展示一个例子。
我使用的是 ruby 1.9.3,但也欢迎 1.8 和 2.0 的解决方案。
我有一个文件 main.rb 如下:
class Stuff
def self.do_stuff(x)
puts x
end
require_relative('./custom.rb')
do_stuff("y")
end
Run Code Online (Sandbox Code Playgroud)
并且在同一文件夹中还有一个文件custom.rb,其内容如下:
do_stuff("x")
Run Code Online (Sandbox Code Playgroud)
运行 main.rb,我有以下输出:
/home/fotanus/custom.rb:1:in `<top (required)>': undefined method `do_stuff' for main:Object (NoMethodError)
from main.rb:5:in `require_relative'
from main.rb:5:in `<class:Stuff>'
from main.rb:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)
请注意,如果没有require,则输出为y。
方法中是否有force_encoding不修改调用者对象的版本?
所以,当前的force_encoding是这样的:
> a
=> "Ü"
> a.force_encoding("BINARY")
=> "\xC3\x9C"
> a
=> "\xC3\x9C"
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的:
> a
=> "Ü"
> a.force_encoding_non_destructive("BINARY")
=> "\xC3\x9C"
> a
=> "Ü"
Run Code Online (Sandbox Code Playgroud)
请注意,我完全理解a.force_encoding("UTF-16LE").force_encoding("UTF-8")相同的结果(假设a以前是UTF-8)并且字符串中的字节未被修改.但是,字符串状态被修改,因此该方法是破坏性的.例如:
a="a"
a.freeze
a.force_encoding("BINARY")
# raises error
Run Code Online (Sandbox Code Playgroud) 我需要在我的数据库中创建一个包含序列化数据的列.我应该选择字符串列还是文本列?
起初我会选择文本,因为字符串有限的大小,但在第二个想法,它会对性能产生影响吗?我应该如何在字符串和文本之间做出决定?
如何使用rspec测试创建10个对象的方法,但返回一个布尔值?
如果只有一个用户?有一种更清洁的测试方法吗?
我想做以下事情:
object.method1.method2.method3.method4
Run Code Online (Sandbox Code Playgroud)
除了所有方法都在一个数组中.所以,在一个例子中:
object = 1
methods = %W(to_s split shift)
# should somehow do 1.to_s.split.shift
Run Code Online (Sandbox Code Playgroud)
如何methods在对象上调用顺序?
维基百科(以及其他一些消息来源)指出:
在RAII中,持有资源与对象生存期相关联:资源分配(获取)在对象创建(特别是初始化)期间由构造函数完成,而资源释放(释放)在对象销毁期间由析构函数完成.如果对象被正确销毁,则不会发生资源泄漏.
但是,wiki上的示例显示的代码根本没有向我们展示对象的构造函数/析构函数:
#include <string>
#include <mutex>
#include <iostream>
#include <fstream>
#include <stdexcept>
void write_to_file (const std::string & message) {
// mutex to protect file access
static std::mutex mutex;
// lock mutex before accessing file
std::lock_guard<std::mutex> lock(mutex);
// try to open file
std::ofstream file("example.txt");
if (!file.is_open())
throw std::runtime_error("unable to open file");
// write message to file
file << message << std::endl;
// file will be closed 1st when leaving scope (regardless of exception)
// mutex will be unlocked 2nd …Run Code Online (Sandbox Code Playgroud) ruby ×5
activerecord ×1
c ×1
c++ ×1
database ×1
encoding ×1
javascript ×1
jquery ×1
raii ×1
rspec ×1
unit-testing ×1
yaml ×1