小编uca*_*ion的帖子

我什么时候可以省略C中的花括号?

我几乎肯定以前曾经问过这个问题,但我发现它无法在任何地方得到解答.

我什么时候可以省略C中的花括号?我之前见过无括号的return陈述,比如

if (condition)
  return 5;
Run Code Online (Sandbox Code Playgroud)

但这似乎并不总是适用于所有语句,即在声明方法时.

编辑:

大括号遗漏的规则是否与Java相同?

c

14
推荐指数
3
解决办法
1万
查看次数

SSH忽略我的ForwardAgent配置?

我正在尝试为我正在处理的webapp设置Capistrano,而我无法让代理转发工作.

这是我的~/.ssh/config:

Host rs
Hostname <ip of my server>
  ForwardAgent yes

User root
Run Code Online (Sandbox Code Playgroud)

而且我认为默认设置不会覆盖任何内容,因为ForwardAgent在那里从未提及(除了注释行).

这是我正常SSH时会发生的事情:

$ ssh -v deploy@<server>
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/ulyssecarion/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *

-- snip --

debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Welcome …
Run Code Online (Sandbox Code Playgroud)

ssh

8
推荐指数
1
解决办法
1万
查看次数

如何以 i18n 友好的方式缩写大数?

我想使用给定语言环境惯用的缩写来“缩写”大量数字,使它们易于人类阅读。例如,数字16512将变为:

  • "16.5k"for en-US(“k”是公制前缀“千”的缩写,如“公里”)
  • "16,5???."for ru(“???.”是“??????”的缩写,在俄语中的意思是“千”)

我不确定我正在描述的这个程序叫什么。

Ruby on Rails 有一些类似于我正在寻找的东西叫做#number_to_human,但它不太正确——它会"16.5 Thousand"在我上面的例子中返回。我对缩写感兴趣(也许不是所有语言环境都将事物四舍五入到最近的千位),而不仅仅是使字符串易于阅读。

我对适用于 JavaScript 的解决方案特别感兴趣,但即使是这个过程的名称也会有很大帮助!

internationalization

5
推荐指数
1
解决办法
1449
查看次数

为什么Ruby #hash方法是随机的?

我刚刚注意到#hash每次启动Ruby时更改的返回值:

$ irb
2.0.0-p353 :001 > "".hash
2313425349783613115
2.0.0-p353 :002 > exit

$ irb
2.0.0-p353 :001 > "".hash
4543564897974813688
2.0.0-p353 :002 > exit
Run Code Online (Sandbox Code Playgroud)

我查看了MRI源,看看为什么会发生这种情况:

st_index_t
rb_str_hash(VALUE str)
{
    int e = ENCODING_GET(str);
    if (e && rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) {
    e = 0;
    }
    return rb_memhash((const void *)RSTRING_PTR(str), RSTRING_LEN(str)) ^ e;
}
Run Code Online (Sandbox Code Playgroud)

事实证明rb_memhash,定义random.c如下:

st_index_t
rb_memhash(const void *ptr, long len)
{
    sip_uint64_t h = sip_hash24(sipseed.key, ptr, len);
#ifdef HAVE_UINT64_T
    return (st_index_t)h;
#else
    return (st_index_t)(h.u32[0] ^ h.u32[1]); …
Run Code Online (Sandbox Code Playgroud)

ruby

4
推荐指数
1
解决办法
194
查看次数

查找数组中给定类的所有实例

我有一个程序,我需要在数组中找到类的所有实例.我想创建一个为我做这个的方法.例如,如果我有阵列

Object[] arr = {"mystring", new Boolean(false), new Integer(4), new Character('i')}
Run Code Online (Sandbox Code Playgroud)

我用String的参数调用了这个方法(实际上我不确定我的参数的类型应该是什么),它会返回一个数组{"mystring"}.

我尝试过类似的东西

public void printInstancesOf(Class c, Object[] array)
{
    for (Object obj : array)
    {
        if (obj instanceof c)
        {
             System.out.println(obj);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这甚至都没有编译.有谁知道如何做到这一点?或者是不可能做到的?

java

2
推荐指数
1
解决办法
189
查看次数

Rails:belongs_to&accepts_nested_attributes_for,polymorphic

我正在开发我的第一个Rails项目,我有以下模型关系:

class Profile < ActiveRecord::Base
  belongs_to :identifiable, polymorphic: true
  accepts_nested_attributes_for :students

class Student < ActiveRecord::Base
  has_one :profile, as: :identifiable
  attr_accessible :profile
Run Code Online (Sandbox Code Playgroud)

相关的控制器是:

class StudentsController < ApplicationController
  def new
    @student = Student.new
  end

  def create
    @student = Student.new(params[:student])
    if @student.save
      redirect_to root_path
    else
      render 'new'
   end
  end
end
Run Code Online (Sandbox Code Playgroud)

class ProfilesController < ApplicationController
  def new
    @profile = Profile.new
  end

 def create
    @profile = Profile.new(params[:profile])
    @profile.save
 end
end
Run Code Online (Sandbox Code Playgroud)

我要做的是Student使用以下形式创建一个新的,它位于students\new.html.erb:

<h1>Create a new Student Account</h1>
<div class="row">
  <div class="span6 …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

2
推荐指数
1
解决办法
4905
查看次数

标签 统计

ruby ×2

c ×1

internationalization ×1

java ×1

ruby-on-rails ×1

ssh ×1