我本来可以发誓我曾经alength工作过,但我现在还不太清楚我做错了什么:
user=> (alength '(1 2 3))
IllegalArgumentException No matching method found: alength clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:79)
user=> (alength [1 2 3])
IllegalArgumentException No matching method found: alength clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:79)
user=> (doc alength)
-------------------------
clojure.core/alength
([array])
Returns the length of the Java array. Works on arrays of all
types.
nil
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能在Clojure中获取列表/数组的长度?
所以我认为命名一个计算指数的函数是一个不错的主意^,但看起来插入符实际上做了一些特殊的事情,因为Clojure REPL在评估时会产生错误'^.谷歌搜索大多给了我这个,所以我想知道Clojure中插入符号的实际用途是什么.
(另外,毕竟可以命名一个函数^吗?)
为什么90输出值y和q?我只是这样做p=q.怎么q改变价值?
int main()
{
int x;
int y;
int *p = &x;
int *q = &y;
x = 35;
y = 46;
p = q;
*p = 90;
cout << x << " " << y << endl;
cout << *p << " " << *q << endl;
cout << "Address of p = " << p << endl;
cout << "Address of q = " << q << endl; …Run Code Online (Sandbox Code Playgroud) 我想到的第一件事是做一堆\ t\t,但如果任何单词比任何其他单词长几个字符,那么会导致单词错位.
例如,我希望有类似的东西:
Name Last Name Middle initial
Bob Jones M
Joe ReallyLongLastName T
Run Code Online (Sandbox Code Playgroud)
相反,通过在我的cout语句中仅包含"\ t",我只能设法得到
Name Last Name Middle initial
Bob Jones M
Joe ReallyLongLastName T
Run Code Online (Sandbox Code Playgroud)
要么
Name Last Name Middle initial
Bob Jones M
Joe ReallyLongLastName T
Run Code Online (Sandbox Code Playgroud)
我还需要做什么?
编辑:所以我得到我应该首先计算我想要显示的每列的最大宽度,然后相应地添加填充空格.但是我可以如何以及通过什么功能来做这件事呢?我应该只计算一个字符串中的字符数,然后从那里开始?
{% include link_to.html i=5 text="hello world" %}我写了一个允许我这样做的自定义标签,而不是一直写出来{% link_to 5 hello world %}.它找到数据i等于5 的页面并创建一个链接.
但是从标记代码中生成HTML字符串感觉很笨,并且在HTML包含代码中编写复杂的代码逻辑很尴尬.那么有没有办法让标签定义完成找到要链接的相关页面的繁重工作,并让它传递它发现的link_to.html渲染内容?有点像控制器将信息传递给Rails中的视图.
在面向对象编程中拥有类/结构的私有/受保护成员的目的是什么?让所有成员公开会有什么危害?
我一直试图在student.h文件中包含一个名为"student"的结构,但我不太清楚如何做到这一点.
我的student.h文件代码完全包含:
#include<string>
using namespace std;
struct Student;
Run Code Online (Sandbox Code Playgroud)
而student.cpp文件完全由以下内容组成:
#include<string>
using namespace std;
struct Student {
string lastName, firstName;
//long list of other strings... just strings though
};
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用的文件#include "student.h"会出现很多错误
error C2027: use of undefined type 'Student'
error C2079: 'newStudent' uses undefined struct 'Student' (where newStudent is a function with a `Student` parameter)
error C2228: left of '.lastName' must have class/struct/union
Run Code Online (Sandbox Code Playgroud)
编译器(VC++)似乎无法识别"student.h"中的struct Student?
如何在"student.h"中声明struct Student,以便我可以#include"student.h"并开始使用struct?
如果我有一个如此定义的类:
class classWithInt
{
public:
classWithInt();
...
private:
int someInt;
...
}
Run Code Online (Sandbox Code Playgroud)
那someInt是一个且只有一个成员变量classWithInt,它慢多少.将宣布这个类,而不是只需要声明一个新的整数的新实例?
你有什么时候,在课堂上说10个这样的整数?100?
我注意到,C++的std命名空间在多个文件中传播(如在vector,string,iostream等).我如何在我的程序中完成同样的事情?我是否只是在每个单独的头文件中声明相同的命名空间,因此它类似于:
啊
namespace something
{
class A {};
}
Run Code Online (Sandbox Code Playgroud)
BH
#include "a.h"
namespace something
{
class B : public A {};
}
Run Code Online (Sandbox Code Playgroud)
然后,比方说,main.cpp我会包含"bh"和"ah",然后using namespace something;使用这两个类?
在Lisp中是否有一种方法可以包含其他Lisp文件的代码?
例如,在C++中我可以这样做:
#include <iostream>
#include <string>
#include "myfile.h"
etc...
Run Code Online (Sandbox Code Playgroud)
在Python中,
import antigravity
import my_module
etc...
Run Code Online (Sandbox Code Playgroud)
是否有Lisp等价物?