我有一个问题可以简化到这个:
parameters: a, b
if (a > 5)
{
Print("Very well, a > 5");
if (b > 7)
Print("Even better, b > 7");
else
{
Print("I don't like your variables");
}
}
else
{
Print("I don't like your variables");
}
Run Code Online (Sandbox Code Playgroud)
我想只使用一个else而不是两个,因为它们是相同的代码.我想到的是创建一个额外的方法,它将返回组合的true`false`,但这是一个严重的矫枉过正.
另一种选择是a goto,但这会使代码更不易读和不安全.
有什么方法可以做到这一点,避免多次检查相同的条件并使其尽可能可读?
我需要决定是否enum在项目中使用我需要的大数组中的s.要做到这一点,我必须知道enum变量的大小.
enum Player
{
First,
Second,
Third,
Fourth
};
private Player _owner;
Run Code Online (Sandbox Code Playgroud)
需要多少记忆_owner?
我没有在C#中找到关于此的正确信息,这就是为什么这个C++和Java主题不适用的原因:Enums需要多少内存?
让我给你举个例子.
var a = 2.0;
var stringA = "" + a;
Run Code Online (Sandbox Code Playgroud)
我会得到:stringA = "2"但我想要:stringA = "2.0".
我不想丢失精度,所以如果:
var b = 2.412;
var stringB = "" + b;
Run Code Online (Sandbox Code Playgroud)
我想得到标准:stringB = "2.412".
这就是为什么toFixed()不能在这里工作.有没有其他方法可以做到,而不是明确检查这样的整数?:
if (a % 1 === 0)
return "" + a + ".0";
else
return "" + a;
Run Code Online (Sandbox Code Playgroud) 我试图在 C++ 编译时获取编译文件的绝对路径。我知道该__FILE__宏 - 但是,该宏可以计算为绝对路径或相对路径,具体取决于预处理器的参数。
我想确保我的__FILE__(或任何其他宏)计算结果为文件的完整绝对路径。有没有办法可靠地跨平台做到这一点?(我正在为 VS2013、VS2015、ubuntu 上的 GCC、MinGW 上的 GCC 进行编译)
我正在我正在开发的 Python 项目中使用 Protobuf (v3.5.1)。我的情况可以简化为以下内容:
// Proto file
syntax = "proto3";
message Foo {
Bar bar = 1;
}
message Bar {
bytes lotta_bytes_here = 1;
}
# Python excerpt
def MakeFooUsingBar(bar):
foo = Foo()
foo.bar.CopyFrom(bar)
Run Code Online (Sandbox Code Playgroud)
我担心的内存性能.CopyFrom()(如果我是正确的,它是复制内容,而不是引用)。现在,在 C++ 中,我可以使用如下内容:
Foo foo;
Bar* bar = new Bar();
bar->set_lotta_bytes_here("abcd");
foo.set_allocated_bar(bar);
Run Code Online (Sandbox Code Playgroud)
从生成的源来看,它看起来不需要复制任何内容:
inline void Foo::set_allocated_bar(::Bar* bar) {
::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
if (message_arena == NULL) {
delete bar_;
}
if (bar) {
::google::protobuf::Arena* submessage_arena = NULL;
if (message_arena != submessage_arena) { …Run Code Online (Sandbox Code Playgroud) 如果我有一个这个并想要另一个例如,我有这个,
List<User> users = GetAllUsers();
Run Code Online (Sandbox Code Playgroud)
但我想要的是Listof名字,
List<string> firstNames = GetAllUsers();
Run Code Online (Sandbox Code Playgroud)
是否有可能转换List<Users>成List<string>的FirstName出去了箱子的?
编辑
FirstName是User对象的属性,它是字符串.
public class User
{
public string FirstName{get; set;}
public string LastName{get; set;}
public string CustomProperty{get; set;}
}
Run Code Online (Sandbox Code Playgroud) c# ×3
c++ ×2
.net ×1
enums ×1
gcc ×1
if-statement ×1
java ×1
javascript ×1
memory ×1
preprocessor ×1
protobuf-3 ×1
python ×1
python-3.x ×1
types ×1