标签: coding-style

python:使变量等于运算符(+,/,*, - )

是否可以为变量赋一个数学运算符.

这是我目前得到的,只是一个样本(现在打字,所以不要担心简单的错误)

if image == "lighten":
    red_channel = red_channel + 50
else:  // image is darken
    red_channel = red_channel  - 50
Run Code Online (Sandbox Code Playgroud)

请注意我是如何使用不同的运算符重复完全相同的代码.是否有可能实现这样的目标:

if (image == "lighten"):
    operator = +
else:
    operator = - 

red_channel = red_channel operator 50
Run Code Online (Sandbox Code Playgroud)

python coding-style

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

如何在不使用标签的情况下重写java代码?

categoryCheck: {
        for (String allowedCategory : allowedCategories) {
            if (evt.getLoggerName().startsWith(allowedCategory)) {
                break categoryCheck;
            }
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

有没有想法如何在不使用标签的情况下重写此代码并且不会大幅增加它?

java coding-style labels

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

这是好风格吗?

我的函数中有一些参数接收并传递相同的值.我应该将所有参数变量命名为相同吗?

例:

// assume numMonth = 12
// assume numYear = 2000

int promptMonth(); // returns numMonth
int promptYear();  // returns numYear

int daysInMonth(int numMonth, int numYear); // numMonth and numYear will always
int daysInYear(int numYear);                // be sent to these.

bool isLeapYear(int numYear);               // daysInYear() and daysInMonth() call
                                            // this function and send it numYear 
                                            // (which would be 2000 in this case).
Run Code Online (Sandbox Code Playgroud)

是否所有这些参数都被命名为相同,因为相同的值被传递给它们?

c++ coding-style parameter-passing

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

如何处理无用的init?

这是我现在拥有的init,

- (id)init 
{
    self = [super init];

    if (self) {
        self.url = [[NSURL alloc] init];
        self.blurb = [[NSString alloc] init];
        self.author = [[NSString alloc] init];
    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

它什么也不做,但我有一个称为另一种方法initWithObject:将使用它的参数来填充实例变量url,blurbauthor.我不知道我应该怎么做init.我应该抛出异常吗?我还有其他选择吗?

cocoa-touch coding-style objective-c object-initializers

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

Perl ala Haskell中的模式匹配

在Haskell(F#,Ocaml等)中,我可以这样做:

sign x |  x >  0        =   1
       |  x == 0        =   0
       |  x <  0        =  -1
Run Code Online (Sandbox Code Playgroud)

它计算给定整数的符号.

这可以简明扼要地表达某些逻辑流程; 我在Perl中遇到过其中一个流.

现在我正在做的是

sub frobnicator
{
   my $frob = shift;
   return "foo" if $frob eq "Foomaticator";
   return "bar" if $frob eq "Barmaticator";
   croak("Unable to frob legit value: $frob received");
}
Run Code Online (Sandbox Code Playgroud)

这让人感到无比和丑陋.

这段代码必须在Perl 5.8.8上运行,但我当然也对更现代的技术感兴趣.

perl coding-style pattern-matching

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

在Rails中重构视图逻辑

这就是我需要做的.我有一个Tournament模型,它连接到Uservia Signup(N:N).

唯一Signup增加的是注册状态.比赛有一个开始时间,用户只能在比赛开始前60分钟进行注册.之后,注册用户可以办理登机手续.所以基本上我有两种选择

简而言之,模型看起来像这样

class Signup < ActiveRecord::Base
  REGISTERED = 0
  CHECKED = 1

  belongs_to :tournament
  belongs_to :user
end

class Tournament < ActiveRecord::Base
  has_many :signups
  has_many :users, :through => :signups
end

class User < ActiveRecord::Base  
  has_many :signups
  has_many :tournaments, :through => :signups
end
Run Code Online (Sandbox Code Playgroud)

我跳过一些代码来保持这个简短.问题在于,因为我有很多条件要记住.这是我的实际代码(使用Slim作为模板引擎)

- if logged_in?
  - if current_user.registered_for?(@tournament)
    - if @tournament.starts_at < 60.minutes.from_now
      p Signups are closed, only registered users can now check in
      - if current_user.registered_for?(@tournament)
        = button_to …
Run Code Online (Sandbox Code Playgroud)

ruby refactoring coding-style ruby-on-rails view

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

Eclipse标记的目的是什么 - 比如@author,@ version,@ link?

我注意到Eclipse会自动@author在新Java类的顶部添加一个带有我名字的标签.我也注意到,有可像其他标签@version,@link,@code,@value,@see...

是否只是形成了另一个"惯例",以便代码保持良好的记录?还是有其他目的吗?

我试图找到一个网站,可以更好地描述标签及其用法,但我没有运气.

java eclipse tags coding-style

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

使一个适用于旧C字符串(char*,int)的函数可以在std :: string&上运行

假设我有一个非常复杂的缓冲区加扰函数,可以使用以下原型:

void do_something(char * thebuffer, int thelength);
Run Code Online (Sandbox Code Playgroud)

并且假设我需要让函数在std :: string上运行.但是std :: string.c_str()返回const char*,这是不可变的.

除了创建一个新的char*缓冲区,并将其传递给do_something之外,是否可以将do_something用于std :: string?

我的情况实际上是另一种方式(char*,int到std :: string和taking函数).

或者是绕过这个的唯一方法,就是去制作一个新的功能副本,它做同样的事情?(这真的不是很好的风格)

c++ coding-style

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

查找序列号

我有一组数字List<int>(例如):1,3,4,5,7,12,13,14,15,20,22,24,28,29,30

我希望将它们按顺序分组:

Sequence1 = from 1 amount 1 (1)
Sequence2 = from 3 amount 3 (3, 4, 5)
Sequence3 = from 7 amount 1 (7)
Sequence4 = from 12 amount 4 (12, 13, 14, 15)
Sequence5 = from 20 amount 1 (20)
Sequence6 = from 22 amount 1 (22)
Sequence7 = from 24 amount 1 (24)
Sequence8 = from 28 amount 3 (28, 29, 30)
Run Code Online (Sandbox Code Playgroud)

我知道如何使用for和检查每个数字.是否有更优雅的方式或算法,或一些sql/lambda命令可以帮助我?

c# sql math coding-style

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

在函数内部调用函数

当我编写代码时,我会尝试将所有内容划分为函数(方法,如果您愿意).函数X做东西X,Y做Tuff Y而不是方法X做东西X,Y和Z!这给了我更多可重用的代码.我喜欢.:)

让我们来看看这段代码:

var user = {
  users: [],
  userCount: 0,
  addUser: function(user) {
    (this.users).push(user);
  },
  incrementCount: function() {
    ++this.userCount;
  }
}

var user = { // 2nd example.
  users: [],
  userCount: 0,
  addUser: function(user) {
    (this.users).push(user);
    ++this.userCount;
  }
}
Run Code Online (Sandbox Code Playgroud)

(它是用JavaScript编写的,但这里的语言不是必需的.)

在我看来,第二个例子将更容易和更安全地使用,比方说,API用户.忘记打电话很容易user.incrementCount().你怎么看?第二个例子自动完成.

那么如何找到平衡点呢?关于在函数内调用函数的任何最佳实践?

感谢您阅读本文.

编辑:

我刚才想到了这个:

var user = {
  users: [],
  userCount: 0,
  addUser: function(user) {
    (this.users).push(user);
    this.incrementCount();
  },
  incrementCount: function() {
    ++this.userCount;
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript oop code-reuse coding-style

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