当我的类成员名称和成员函数名称相同时,G ++编译器会抱怨.似乎每当变量名称恰好与函数名称相同时,编译器就会抱怨.
在Java中,情况并非如此.我只是想知道为什么G ++编译器无法区分变量名和函数名,因为函数名总是带有一对括号.
是否有任何官方C++建议涉及应在方法名称中披露的信息量?我问,因为我可以在互联网上找到大量的参考资料,但没有一个真正解释这一点.
我正在使用一个调用方法的C++类calculateIBANAndBICAndSaveRecordChainIfChanged,它很好地解释了该方法的作用.较短的名称将更容易记住,并且不需要智能感知或复制和粘贴来键入.它不那么具有描述性,是真实的,但应该记录功能.
我的日志发生在getParam()方法中.但它被记录为main方法.我有三个对象,但我没有看到有关哪个对象正在记录的任何信息.我也想要这些信息.
这是输出:
INFO [main]: info
INFO [main]: debug
INFO [main]: trace
Run Code Online (Sandbox Code Playgroud)
这是代码:
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
class Log4jTest {
private static Logger log=Logger.getLogger(Log4jTest.class);
private String param;
public Log4jTest(String param){
this.param=param;
}
public String getParam(){
log.info(param);
return param;
}
}
public class Log4j_testing {
public static void main(String[] args) throws FileNotFoundException{
Log4jTest l1= new Log4jTest("info");
l1.getParam();
Log4jTest l2= new Log4jTest("debug");
l2.getParam();
Log4jTest l3= new Log4jTest("trace");
l3.getParam();
}
}
Run Code Online (Sandbox Code Playgroud)
我的log4j.properties:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L …Run Code Online (Sandbox Code Playgroud) 我正在研究对应用程序的可读性有影响的代码味道.我遇到了很长的方法名称,我想知道是否有这样的约定.
我已经检查了scaladocs中的命名约定,但它没有列出任何有关方法名称长度的内容.我还检查了Scalastyle规则并注意到它默认为50.
方法名称的最大长度是否有正式约定,如果有,它有多长时间?