小编Spe*_*rek的帖子

MySQL错误:没有密钥长度的密钥规范

我有一个主键是一个varchar(255)的表.出现了一些情况,其中255个字符是不够的.我尝试将字段更改为文本,但是我收到以下错误:

BLOB/TEXT column 'message_id' used in key specification without a key length
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

编辑:我还应该指出这个表有一个包含多列的复合主键.

mysql sql mysql-error-1170

335
推荐指数
7
解决办法
34万
查看次数

如何在已声明的JSON对象中添加键值对

我已经声明了一个JSON对象,并在其中添加了一些键值对,如:

var obj  = {};
Run Code Online (Sandbox Code Playgroud)

并添加了一些数据,如:

obj = {
"1":"aa",
"2":"bb"
};
Run Code Online (Sandbox Code Playgroud)

但是我想在同一个对象中添加更多的键值对,如果我添加上面提到的键值对,那么它将替换旧的键值对.那么任何人都可以告诉我如何在同一个JSON对象中添加数据,即obj.

javascript json

18
推荐指数
4
解决办法
10万
查看次数

无法在Chart.js中绘制方法,无法找到v2

我以前用bower安装了我的chart.js当前版本.出于不同的原因,我必须使用chart.js:https://github.com/nnnick/Chart.js/releases/tag/2.0.0-alpha3

我将凉亭文件上的名称更改为当前版本并安装了凉亭.但我一直收到这个错误.

TypeError :(中间值).Line不是函数

这是我的代码:

var myNewChart = new Chart(ctx).Line(dat);
Run Code Online (Sandbox Code Playgroud)

javascript charts chart.js

17
推荐指数
1
解决办法
1万
查看次数

SWIG和C++共享库

我有一个C++库(让我们叫它mylib),它编译成libmylib.so文件中/usr/local/lib,我有一个名为目录一堆头文件my lib/usr/local/include.

现在我想做的事情(对于初学者)只是使用其中一个头文件(它包含我的库提供的类的信息)和SWIG生成mylib_wrap.cxx文件,然后编译它并将其链接到现有文件mylib.so.这样我就可以在Python中实现我的类了.

这是正确的方法/想法吗?编译和链接命令将如何(当然不完全正确)?我正在尝试生成Python绑定.

c++ python linker swig g++

14
推荐指数
1
解决办法
9468
查看次数

jQuery UI对话框文本是否有换行选项?

我正在使用来自Pokemon的数据创建一个网站并尝试执行一个对话框.我尝试在文本中使用JS换行符:

function alertBox(monster) {
    $("#dialog").dialog();
    $("#dialog").dialog("option", "title", monster);
    $("#dialog").text("Height: "  + pokemon.height[monster] + "\n" +
                      "Weight: " + pokemon.weight[monster]);
}
Run Code Online (Sandbox Code Playgroud)

...而且我也尝试过使用html换行标记:

function alertBox(monster) {
    $("#dialog").dialog();
    $("#dialog").dialog("option", "title", monster);
    $("#dialog").text("Height: "  + pokemon.height[monster] + "<\br>" +
                      "Weight: " + pokemon.weight[monster]);
}
Run Code Online (Sandbox Code Playgroud)

但似乎都没有返回我正在寻找的换行效果!JS换行符只是一个空格,而html换行标记只是连接到字符串.有没有办法在对话框文本中强制换行?

html javascript jquery

11
推荐指数
1
解决办法
6439
查看次数

原语的Literal vs Constructor表示法,对于初学者来说更合适?

所以我是我大学班级的助教,我对如何为绝对初学者程序员提供数据类型有一些分歧(其中大多数从未编程过).我的老师告诉学生他们必须严格使用构造函数来创建原始数据类型,如数字和字符串,她的理由是将JavaScript视为强类型,这样学生将习惯于未来的语言.我理解为什么,但我认为它有不好的权衡.

var num = new Number(10); // This is encouraged.

var num = 10; // This is discouraged (students will lose points for doing this).
Run Code Online (Sandbox Code Playgroud)

我的导师没有对这些进行区分,并且学生被告知将他们视为原始的数字,弦乐等等.虽然我相信至少对于那些datatype.valueOf()在必要时不知道更好使用的初学者,并且不知道到目前为止还有什么东西.文字符号(并且我认为它)更合适和更标准,另一种方式会引起混淆.由于构造函数符号存在一致性问题,因为它们是对象(我不希望学生担心这一点).例如,这些对初学者没有意义:

var num1 = new Number(1);
var num2 = new Number(1);

if(num1 === num2) ... ; // Does not run.    

if(num1 == num2) ... ; // Does not run.

if(num1 == 1) ... ; // But this does.    

var num2 = new Number(2);

if(num1 < num2) ... ; // So does this.

switch(num1){ …
Run Code Online (Sandbox Code Playgroud)

javascript constructor

10
推荐指数
2
解决办法
581
查看次数

如何正确解除引用然后删除JavaScript对象?

我想知道从内存中完全取消引用JavaScript对象的正确方法.确保删除它没有在内存中悬空,并且垃圾收集器删除了对象.

当我看到这个问题时,在JavaScript中删除对象.据解释,如果删除对象的所有引用,GC将从内存中删除它.我想知道如何从具有方法和属性的对象中删除引用.

假设您拥有通过使用创建function的对象,并且该对象具有方法和属性.说它看起来像这样:

function myObject(x, y) {
   this.x = x; 
   this.y = y;

   this.myMethod = function() {
      // method code
   }
}

var myInstance = new myObject(24, 42) // How to remove this completely?
Run Code Online (Sandbox Code Playgroud)

注意:这是一个例子,我知道你可以prototype用于方法.

我知道我不能只说delete myInstance.所以在这种情况下要完全删除对象,我需要调用delete它的所有属性,然后调用delete实例,就像这样?

delete myInstance.x;
delete myInstance.y;
delete myInstance; // I'm not sure if this is necessary.
Run Code Online (Sandbox Code Playgroud)

这会有用吗?或者我还需要delete它的方法(如果是这样的话)?

或者也许有更好更简单的方法来做到这一点?

javascript garbage-collection memory-management object dereference

9
推荐指数
1
解决办法
4630
查看次数

JSON.parse(fs.readFileSync())返回一个缓冲区 - 数字字符串

我使用一个简单的Node.js从有效的jsonfile中提取信息(使用JSLint检查),但我使用的代码不返回预期的值:

        squadJSON = JSON.parse(fs.readFileSync('./squads/squad' + whichSquad + '.json'));    
Run Code Online (Sandbox Code Playgroud)

它返回:

{ type: 'Buffer',
Run Code Online (Sandbox Code Playgroud)

数据:[123,10,32,32,34,97,99,... 548更多项目]}

有什么理由为什么会这样?

javascript node.js

6
推荐指数
2
解决办法
6540
查看次数

clearTimeout 在 React Native 中不起作用

我有四个屏幕 A(主页)、B、C、D

每个屏幕都有一个功能,当屏幕onStart或时触发onResume,我通过react-redux来实现。

countdownToFirstScreen = () => {
    this.timeOut = setTimeout(()=> {
      clearTimeout(this.timeOut); // clearTimeout before navigate next screen
      this.props.leaveTheScreenTime(); // change for some redux store boolean
      this.props.navigation.navigate('A');
    }, 9000);    
  }
Run Code Online (Sandbox Code Playgroud)

如果用户<Button />在倒计时完成前点击,我也会设置 clearTimeout。

<Button 
  onPress={() => { 
    clearTimeout(this.timeOut);
    this.props.navigation.navigate('nextScreen');
  }
/>
Run Code Online (Sandbox Code Playgroud)

当我只是在 A 和 B 和 C 之间导航时它正在工作。

当我尝试从 C 导航到 D 时,会出现我的问题。

countdownToFirstScreen即使我单击C 屏上的 ,也会触发C 屏功能<Button />

有谁知道我的setTimeout和发生了什么clearTimeout

javascript react-native

5
推荐指数
2
解决办法
8371
查看次数

基本的循环概念

这是用于评估两个字符串的长度和字符是否相等的正确代码.

function equal(x, y) {
    if(x.length != y.length)
         return false
    var i = 0;
    while(i < x.length) {
       if(x.charAt(i) != y.charAt(i))
          return false
       i++
    }
    return true
  }

equal("hello", "hello") // true
equal("hello", "heyyy") // false
Run Code Online (Sandbox Code Playgroud)

我自己修改了它,我认为这对我来说是合乎逻辑的.但是我的代码(如下所示)在其角色内容不同时返回true.任何人都可以帮我解决我的版本有什么问题吗?

function equal(x, y) {
  if(x.length != y.length)
     return false
  var i = 0;
  while(i < x.length) {
     if(x.charAt(i) != y.charAt(i))
        return false
     else return true
    i++
   }
}

equal("hello", "hi") //false
equal("hello", "heyyy") //true
Run Code Online (Sandbox Code Playgroud)

javascript loops while-loop

1
推荐指数
1
解决办法
76
查看次数

JavaScipt的数据类型转换究竟对"=="运算符有效吗?

我最近if( ... == true)在JavaScript中使用时发现了一些奇怪的东西.该==运营商应该尝试转换给定的数据类型是相同的.但有些情况似乎没有像我们预期的那样做:

if ( 42 == true ) // false ( Only 1 is true )
if ( "Hello World" == true ) // false ( false for any string )
Run Code Online (Sandbox Code Playgroud)

虽然如果我将它们自己转换!!成两者42并且"someString"结果是true:

if ( !!42 === true ) // Shows that 42 cast to a boolean is true.
if ( !!"Hello World" === true ) // Same for strings
Run Code Online (Sandbox Code Playgroud)

请注意,如果我切换它if( true == ... ),结果是相同的.我想知道这里到底发生了什么,为什么 …

javascript equality type-conversion

-2
推荐指数
1
解决办法
174
查看次数