是否可以从数组中向JavaScript函数发送可变数量的参数?
var arr = ['a','b','c']
var func = function()
{
// debug
alert(arguments.length);
//
for(arg in arguments)
alert(arg);
}
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(arr); // prints 1, then 'Array'
Run Code Online (Sandbox Code Playgroud)
我最近写了很多Python,这是一个很好的模式,能够接受varargs并发送它们.例如
def func(*args):
print len(args)
for i in args:
print i
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(*arr) // prints 4 which is what I want, then 'a','b','c','d'
Run Code Online (Sandbox Code Playgroud)
在JavaScript中是否可以发送一个数组作为参数数组?
简而言之:一个包含超过1600万条记录的表[大小为2GB].使用ORDER BY*primary_key时,使用SELECT的LIMIT偏移越高,查询变得越慢
所以
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)
远远不及
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Run Code Online (Sandbox Code Playgroud)
这也只能订购30条记录.所以这不是ORDER BY的开销.
现在,当获取最新的30行时,大约需要180秒.如何优化该简单查询?
我偶尔会听到关于SQL如何糟糕而且它不是一种好语言的事情,但我从来没有真正听到过关于它的替代方案.那么,是否有其他优秀的语言可以实现相同的目的(数据库访问),是什么让它们比SQL更好?有没有好的数据库使用这种替代语言?
编辑:我熟悉SQL并一直使用它.我没有问题,我只对可能存在的任何替代方案感兴趣,以及为什么人们更喜欢它们.
我也不是在寻找替代类型的数据库(NoSQL运动),只是寻找不同的数据库访问方式.
我最近遇到了一个问题,可以使用模数除法轻松解决,但输入是一个浮点数:
给定周期函数(例如
sin)和只能在周期范围内计算它的计算机函数(例如[-π,π]),创建一个可以处理任何输入的函数.
"明显"的解决方案是这样的:
#include <cmath>
float sin(float x){
return limited_sin((x + M_PI) % (2 *M_PI) - M_PI);
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我收到此错误:
error: invalid operands of types double and double to binary operator %
Run Code Online (Sandbox Code Playgroud)
有趣的是,它确实在Python中有效:
def sin(x):
return limited_sin((x + math.pi) % (2 * math.pi) - math.pi)
Run Code Online (Sandbox Code Playgroud) 我今天编写了一些代码并得到了一个奇怪的编译错误,这似乎是由于成员变量的初始化顺序与声明的顺序不同.
例:
class Test {
int a;
int b;
public:
Test() : b(1), a(2) {
}
};
int main() {
Test test;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后,如果我编译它-Werror -Wall:
$ g++ -Werror -Wall test.cpp
test.cpp: In constructor ‘Test::Test()’:
test.cpp:3:9: error: ‘Test::b’ will be initialized after [-Werror=reorder]
test.cpp:2:9: error: ‘int Test::a’ [-Werror=reorder]
test.cpp:6:5: error: when initialized here [-Werror=reorder]
cc1plus: all warnings being treated as errors
Run Code Online (Sandbox Code Playgroud)
我意识到这-Wall是明确要求GCC过度警告,但我认为所有这些都是有原因的.那么,初始化成员变量的顺序怎么样呢?
最近我在找一个想要使C++更多Haskell-y的朋友,我们想要一个基本上像这样的函数:
auto sum(auto a, auto b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
显然我不能使用auto作为参数类型,所以我将其更改为:
template<class A, class B>
auto sum(A a, B b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.我们最终意识到我们需要这个:
template<class A, class B>
auto sum(A a, B b) -> decltype(a + b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,重点是什么?不decltype只是重复信息,因为编译器只能查看return语句?
我认为可能需要它,所以我们可以只包含一个头文件:
template<class A, class B>
auto sum(A a, B b) -> decltype(a + b);
Run Code Online (Sandbox Code Playgroud)
...但我们无论如何都不能使用这样的模板.
我考虑的另一件事是编译器可能更容易,但看起来它实际上会更难.
案例1:随着 decltype
decltype语句的类型案例2:没有 decltype
因此,考虑到这些事情,尾随返回类型的重点是decltype …
我有一个使用以下方法编码的字符串,有没有办法将此字符串解码回原始值?谢谢.
public synchronized String encode(String password)
throws NoSuchAlgorithmException, IOException {
String encodedPassword = null;
byte[] salt = base64ToByte(saltChars);
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.reset();
digest.update(salt);
byte[] btPass = digest.digest(password.getBytes("UTF-8"));
for (int i = 0; i < ITERATION_COUNT; i++) {
digest.reset();
btPass = digest.digest(btPass);
}
encodedPassword = byteToBase64(btPass);
return encodedPassword;
}
private byte[] base64ToByte(String str) throws IOException {
BASE64Decoder decoder = new BASE64Decoder();
byte[] returnbyteArray = decoder.decodeBuffer(str);
return returnbyteArray;
}
private String byteToBase64(byte[] bt) {
BASE64Encoder endecoder = new BASE64Encoder();
String returnString …Run Code Online (Sandbox Code Playgroud) 我已成功发送简单的电子邮件:
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setTo("someone@abc.com");
mailMessage.setSubject("This is the test message for testing gmail smtp server using spring mail");
mailMessage.setFrom("abc@gmail.com");
mailMessage.setText("This is the test message for testing gmail smtp server using spring mail. \n" +
"Thanks \n Regards \n Saurabh ");
mailSender.send(mailMessage);
Run Code Online (Sandbox Code Playgroud)
我需要什么设置才能发送html电子邮件
如何在Mac OS X和Linux上使用"printf"输出彩色文本?
所以这可能是一个很长的镜头,但有没有办法将C或C++文件作为脚本运行?我试过了:
#!/usr/bin/gcc main.c -o main; ./main
int main(){ return 0; }
Run Code Online (Sandbox Code Playgroud)
但它说:
./main.c:1:2: error: invalid preprocessing directive #!
Run Code Online (Sandbox Code Playgroud) c++ ×4
c ×2
java ×2
c++11 ×1
colors ×1
console ×1
cryptography ×1
database ×1
g++ ×1
hash ×1
javascript ×1
limit ×1
linux ×1
macos ×1
mysql ×1
performance ×1
shell ×1
spring-mvc ×1
sql ×1
sql-order-by ×1