0

我想学习如何在变量名中添加空格。

我知道很多语言阻止我这样做,但我相信有一个技巧可以做到这一点,因为我看到有人这样做了MQL5

A允许为在 { |中声明的变量MetaTrader Terminal的 MMI 辅助设置值input和变量显示 UI 对话面板。| } 代码,在代码执行启动期间。externExpert AdvisorTechnical IndicatorScript

(参考下图) MetaTrader Termina 对话面板,用于在 { Expert Advisor | 上设置 <code>input</code> 和 <code>extern</code> 变量的值  技术指标 |  脚本 } 代码执行启动:。

4

6 回答 6

2

C++你不能在变量名中放置空格,但你可以使用std::map得到你想要的。

例如:

#include <map>
#include <string>

int main()
{
    std::map<std::string, std::string> vars;

    vars["Time Frame"] = "15 minutes";
    vars["Indicator Period"] = "16";
    // ... etc

}

std::map是一个将一个映射到另一个的关联容器。std::string

根据您打算如何使用地图,您可能还需要考虑使用std::unordered_map,它应该具有更高的性能但不会保持键排序并且可能具有更高的内存使用量。

于 2015-05-25T13:18:31.203 回答
2

如果你真的想变得邪恶,有时可以使用从左到右的标记U+200E,它看起来像一个常规空格,但通常不被视为空白。不同的语言和/或特定平台的行为可能不同。

这个技巧似乎在 C# 中有效,显然你可以在 ruby​​ 中做类似的事情

我使用 g++ 进行了尝试,幸运的是,为了每个人的理智,这是不允许的:

foo.cc:5:10: error: non-ASCII characters are not allowed outside of literals and identifiers
    int a<U+200E> b = 3;

请不要在恶作剧和愚人节笑话之外这样做。

于 2015-05-25T13:30:37.540 回答
1

据我所知,没有任何选项可以在变量名称中添加空格。

于 2015-05-25T13:15:19.390 回答
1

在名称中使用空格(无论是文件名、变量名还是其他名称)的问题在于,您需要有一些其他机制来确定该名称的一部分以及下一段代码的一部分。您的示例看起来像一个表单,因此它具有自己的格式和结构。

SQL 确实允许您[name with space]使用 backticks 或 backticks来“引用”变量名`name with space`

大多数其他语言不允许在变量名中使用空格,因为任何空白空格都被视为不同词汇单元 [不同名称/单词/变量] 的分隔符。您无法更改它,因为它会改变“普通代码”的含义。大多数语言确实允许/_用作“名称中的空格”字符。

当然,如果您有自己构造的“变量”,例如从数据库或文件中读取,您可以使用自己的语法,并使用例如std::map<std::string, sometype>std::unordered_map<std::string, sometype>将字符串从您的数据连接到相应的值。

于 2015-05-25T13:22:36.947 回答
1

空格(空格)在 C++ 中用于隔离关键字和变量名,因此它们不能存在于变量名中,否则编译器会将文本视为多个标识符。

示例 - 有效: static const unsigned int my_variable = 6U;

如果之间有空格,编译myvariable如何知道哪个是变量名?如果这里有两个变量,那就没有意义了。

此外,如您所见,语句中可能有多个关键字。

于 2015-05-25T16:20:12.710 回答
1

我找到了解决办法。
在 Mql5 中,当您在变量名旁边添加注释时,它将出现而不是变量名。看到这张图片: http: //prntscr.com/79vaae

于 2015-05-27T05:15:10.517 回答