我已经安装了mongodb并且能够运行它,使用它,做简单的DB读/写类型的东西.现在我正在尝试设置我的Mac以运行mongod作为服务.
我得到"命令未找到"以回应:
init mongod start
Run Code Online (Sandbox Code Playgroud)
回应:
~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service
Run Code Online (Sandbox Code Playgroud)
如果我尝试:
~: launchctl start mongod
launchctl start error: No such process
Run Code Online (Sandbox Code Playgroud)
显然我有点浮躁了.下一步似乎是输入随机字符,直到有效.该命令做的工作是:mongod --quiet &我不知道,也许是你的方式该怎么办呢?也许我应该脱掉'安静模式'并添加> /logs/mongo.log到命令行的末尾?
我正在Mac上构建一个开发环境,目的是在linux服务器上做同样的事情.我只是不确定Bash命令.我尝试提取答案时所做的所有其他搜索都为我提供了Windows机器的建议.
也许有人知道linux版本的命令?
非常感谢
(注意:这个问题是不必指定元素的数量,仍然允许直接初始化嵌套类型.)
这个问题讨论了C数组的用途int arr[20];.在他的回答中,@ James Kanze展示了C阵列的最后一个据点,它具有独特的初始化特性:
int arr[] = { 1, 3, 3, 7, 0, 4, 2, 0, 3, 1, 4, 1, 5, 9 };
Run Code Online (Sandbox Code Playgroud)
我们没有必要指定元素的数量,万岁!现在遍历它与C++ 11的功能std::begin和std::end从<iterator>(或您自己的变体),你永远需要甚至认为它的大小.
现在,有没有(可能是TMP)方法实现同样的目标std::array?使用宏可以使它看起来更好.:)
??? std_array = { "here", "be", "elements" };
Run Code Online (Sandbox Code Playgroud)
编辑:中间版本,从各种答案编译,如下所示:
#include <array>
#include <utility>
template<class T, class... Tail, class Elem = typename std::decay<T>::type>
std::array<Elem,1+sizeof...(Tail)> make_array(T&& head, Tail&&... values)
{
return { std::forward<T>(head), std::forward<Tail>(values)... };
}
// in code …Run Code Online (Sandbox Code Playgroud) 今天我很惊讶地发现在C#中我能做到:
List<int> a = new List<int> { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
我为什么要这样做?调用什么构造函数?我怎么能用我自己的课程做到这一点?我知道这是初始化数组的方法,但数组是语言项,列表是简单的对象......
根据JLS,int在初始化之后,应该用零填充数组.但是,我遇到的情况并非如此.这种行为首先发生在JDK 7u4中,也发生在所有后续更新中(我使用64位实现).以下代码抛出异常:
public static void main(String[] args) {
int[] a;
int n = 0;
for (int i = 0; i < 100000000; ++i) {
a = new int[10];
for (int f : a)
if (f != 0)
throw new RuntimeException("Array just after allocation: "+ Arrays.toString(a));
Arrays.fill(a, 0);
for (int j = 0; j < a.length; ++j)
a[j] = (n - j)*i;
for (int f : a)
n += f;
}
System.out.println(n);
}
Run Code Online (Sandbox Code Playgroud)
在JVM执行代码块的编译之后发生异常,并且不会出现-Xint标志.此外,该Arrays.fill(...)语句(与此代码中的所有其他语句一样)是必要的,如果不存在则不会发生异常.很明显,这个可能的错误与一些JVM优化有关.出于这种行为的原因有什么想法吗?
更新: …
根据Stack Overflow问题的接受(且唯一)答案,
使用定义构造函数
Run Code Online (Sandbox Code Playgroud)MyTest() = default;而是将零初始化对象.
那为什么以下,
#include <iostream>
struct foo {
foo() = default;
int a;
};
struct bar {
bar();
int b;
};
bar::bar() = default;
int main() {
foo a{};
bar b{};
std::cout << a.a << ' ' << b.b;
}
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
0 32766
Run Code Online (Sandbox Code Playgroud)
两个构造函数都是默认的?对?对于POD类型,默认初始化为零初始化.
根据这个问题的接受答案,
如果POD成员未在构造函数中初始化,也未通过C++ 11类内初始化,则默认初始化.
无论堆栈还是堆,答案都是一样的.
在C++ 98中(而不是之后),新的int()被指定为执行零初始化.
该方法的Java Docs
String[] java.io.File.list(FilenameFilter filter)
在返回描述中包含以下内容:
如果目录为空或过滤器未接受任何名称,则该数组将为空.
我如何做类似的事情并初始化一个String数组(或任何其他数组)的长度为0?
我上课了
class foo {
public:
foo();
foo( int );
private:
static const string s;
};
Run Code Online (Sandbox Code Playgroud)
在s源文件中初始化字符串的最佳位置在哪里?
由于Swift支持方法和初始化程序重载,因此您可以将多个init并排放在一起,并使用您认为方便的方法:
class Person {
var name:String
init(name: String) {
self.name = name
}
init() {
self.name = "John"
}
}
Run Code Online (Sandbox Code Playgroud)
那么convenience关键字为什么会存在呢?是什么让以下更好?
class Person {
var name:String
init(name: String) {
self.name = name
}
convenience init() {
self.init(name: "John")
}
}
Run Code Online (Sandbox Code Playgroud) 这应该根据另一个堆栈溢出帖子工作,但它不是:
Dim arrWsNames As String() = {"Value1", "Value2"}
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道什么是错的?