因此,当我第一次开始编程时,我似乎一直在想这个,但我想当时我并不关心'完美'变量命名.
所以我有变量
浮生命; 浮动年龄;
其中lifeTime是我的对象的完整生命周期,年龄对象的当前生命周期.当年龄达到完整的生命时间时,该物体将会死亡.
我只是创建一个从0到1的变量,定义了与完整lifeTime相比的年龄进度.agePercent,如果你愿意的话.当然agePercent不正确,因为它的范围从0到1.
在阅读了一些关于ageFraction,ageGradient,ageNormalized的其他帖子后,我觉得这些都不适合这个目的.
我的解决方案是agePerunum,只需使用拉丁语(我相信这是正确的,但我在高中退学).所以我的问题是......那很酷吗?作为程序员,这对你有意义吗?任何想法或更好的想法?
所以我自己一直在做一个相对较大的项目,我已经意识到之前的一些变量名称是......不太理想.
但是如何轻松地更改项目中的变量名称?是否有这样的工具可以通过项目目录,解析所有文件,然后将变量名称替换为所需的名称?它必须足够聪明才能理解我想象的语言.
我在考虑使用regexp(linux上的sed/awk?)工具来替换变量名,但有很多次我的特定变量也作为字符串的一部分包含在内.
还有关于在c ++命名空间上更改内容的问题,因为我的项目中实际上有两个共享相同名称的类,但它们位于不同的名称空间中.
我记得visual studio能够做到这一点,但是在linux上做这个最安全,最优雅的方法是什么?
我已经看到这个变量名称长度对性能C#有影响吗?主题和有关于PHP的相同问题.
我的同事(前端)已被编码为$ o,$ r,$ x,$ m,$ c等所有内容,并激发了它的最佳性能.我真的很怀疑它,代码变得难以阅读.
每件事看起来都像
if ( isset ( self::$o[ self::$x -> name ] ) ) :
$c = 'ClassPrefix_' . self::$o[ self::$x -> name ];
$o = new $c;
self::$x -> read ( );
Run Code Online (Sandbox Code Playgroud) 是否存在技术上的原因,为什么变量名称中不允许使用空格或者是否符合惯例?
例如,是什么阻止我们做这样的事情?:
average score = sum of scores / number of scores
Run Code Online (Sandbox Code Playgroud)
想到的唯一问题是关键字,但可以简单地限制它们在变量名中的使用,而词法分析器将能够区分变量的一部分和关键字.
variables programming-languages language-design variable-names
我的一些朋友和同事进行了一些竞赛,以找到或写出可能的最长的类/变量/属性/方法名称.请记住,我们努力成为优秀的男孩和女孩,并保持命名可理解和简洁,同时仍然通过其名称解释事情的作用.
有时候它不会发生.你参加过这个吗?我只想看看那里有什么.(也许我的朋友和我并不像我们想象的那样疯狂)
注意:我不是在寻找糟糕的命名.那已经在这里了.我正在寻找有点长的好命名.
Html.TextBox("ParentPassword", "", new { @class = "required" })
对于@class来说,什么是天啊.
可能重复:
子范围和CS0136
C#变量范围
虽然我已经使用C#很长一段时间了,但我偶然发现了这个错误.
如果我有以下内容:
if(true)
{
int x = 0;
}
int x = 0;
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息: A local variable named 'x' cannot be declared in this scope because it would give a different meaning to 'x', which is already used in a child scope to denote something else.
如果我这样做:
if(true)
{
int x = 0;
}
x = 0;
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息: The name 'x' does not exist in the current context.
我可以理解有一个或另一个,但为什么这两个错误都存在?第一种选择有没有办法?我觉得很烦人.
谢谢.
我试图运行出现的文档页面上的示例代码System.Reflection.Emit.LocalBuilder类,但它看来,调用LocalBuilder.SetLocalSymInfo(string, int, int)没有做任何事情,因为IL反汇编显示了这个作为IL的SampleAssembly.dll:
.method public static string Function1(int32 A_0) cil managed
{
// Code size 10 (0xa)
.maxstack 1
.locals init (string V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: stloc.1
IL_0002: ldstr "string value"
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: ret
} // end of method Example::Function1
Run Code Online (Sandbox Code Playgroud)
为什么不在Dissasembler中列出变量名(myString和myInt)?
环境信息:
编辑:正如我在评论中提到的,有一个SampleAssembly.pdb文件与SampleAssembly.dll文件一起生成.
**所以,我以前和Erlang一起工作过,而且我很熟悉它.我只是想学习Elixir.
我最近试图将一个"懒惰的caterers"示例翻译成elixir,并且为什么它要么不编译,要么编译警告并且不起作用,我感到很困惑.我在这里缺少什么; 有任何想法吗?erlang代码和'run'如下:**
jps@GRASSKEET ~/dev/erlang
$ cat cater.erl
-module(cater).
-export([cater/1]).
cater(0) -> 1;
cater(N) when N>0 -> N + cater(N-1).
jps@GRASSKEET ~/dev/erlang
$ erl
Eshell V6.3 (abort with ^G)
1> c("cater.erl").
{ok,cater}
2> cater:cater(10).
56
3>*
Run Code Online (Sandbox Code Playgroud)
当我像这样编写Cater.ex时,会收到一个对我没有意义的错误:
jps@GRASSKEET ~/dev/elix
$ cat Cater.ex
defmodule Cater do
def cut(0), do: 1
def cut(N) when N>0, do: N + cut(N-1)
end
jps@GRASSKEET ~/dev/elix
$ iex
Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> c("Cater.ex")
Cater.ex:1: warning: redefining …Run Code Online (Sandbox Code Playgroud) 我的 ~/.bashrc 中有以下代码:
date=$(which date)
date() {
if [[ $1 == -R || $1 == --rfc-822 ]]; then
# Output RFC-822 compliant date string.
# e.g. Wed, 16 Dec 2009 15:18:11 +0100
$date | sed "s/[^ ][^ ]*$/$($date +%z)/"
else
$date "$@"
fi
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这工作得很好。是否有理由避免变量和函数同名?
variable-names ×10
c# ×2
variables ×2
.net ×1
.net-4.0 ×1
bash ×1
c++ ×1
class-names ×1
coding-style ×1
elixir ×1
erlang ×1
il ×1
keyword ×1
naming ×1
percentage ×1
performance ×1
php ×1
refactoring ×1
scope ×1