小编Joe*_*Joe的帖子

如何在WebStorm中显示推断的TypeScript类型?

在VS2012中,您可以将鼠标悬停在typescript变量上,它将显示推断的类型.webstorm中是否有类似的功能?

type-inference phpstorm webstorm typescript

42
推荐指数
5
解决办法
7611
查看次数

什么是使用eclipse在pydev中切换断点的键盘快捷方式

我想我错过了房间里的大象但是对于我的生活,我找不到在使用pydev插件时在eclipse中设置断点的键盘快捷键.

我已经尝试过的事情:

  1. Ctrl+ Shift+ B:什么都不做.

  2. Ctrl+ F10:打开断点上下文菜单,您可以在其中选择添加断点,删除等...我不想每次要使用键盘快捷键时都滚动菜单.. .kinda打败了目的捷径.

  3. 点击代码左侧的条带:这是我将它设置为atm的唯一方法,但如果可以,我宁愿避免使用鼠标.

我在eclipse 3.6上使用了pydev 1.6.1

编辑(31/08):根据codedevour和Tao的两个答案,我已经尝试编辑快捷方式,但是新的快捷方式也没有运气Ctrl+ Shift+ Alt+ B.其他快捷方式有效.我也尝试将In窗口中的"When"下拉到"Pydev编辑器范围"而没有任何影响.从编辑告诉我的内容来看,断点快捷方式没有冲突.

这是两台机器上的全新安装,两台机器都安装在两台机器上.

eclipse keyboard-shortcuts breakpoints pydev

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

linq样式,链接where子句vs和运算符

写作是否存在(逻辑/性能)差异:

ATable.Where(x=> condition1 && condition2 && condition3)

要么

ATable.Where(x=>condition1).Where(x=>condition2).Where(x=>condition3)

我一直在使用前者,但意识到使用后者,我可以阅读和复制部分查询,以便更容易在其他地方使用.有什么想法吗?

linq language-agnostic coding-style

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

JSON响应上的重复块

我有一个相当标准的MEAN项目设置,使用了yeoman的angular-fullstack生成器.

我发现的是,当获取一个较大的(超过65536字节)json结果时,它使用gzip和chunked进行编码,但返回的json无法在chrome中查看或由我的angular client $ resource使用,因为它包含TWO答复!例如,{name:'hi'}{name:'hi'}对于单个id或[{..},{..}][{..},{..}]阵列.

服务器api端点是从angular-fullstack生成器自动生成的,看起来像:

// Get list of worlds
exports.index = function(req, res) {
  World.find(function (err, worlds) {
    if(err) { return handleError(res, err); }
    res.json(200, worlds);
  });
};
Run Code Online (Sandbox Code Playgroud)

如果我对数据进行切片以使其不被分块,那么json就会很好地形成.我已经检查了mongo db并且数据也正常并且调试worlds变量,我可以JSON.stringify并获得预期的字符串结果而没有任何重复.但是当它被发送的那一刻,我正在将响应的json结果加倍.

更新评论

angular-fullstack 2.0.4

架构看起来像:

'use strict';

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var WorldSchema = new Schema({
  name: String,
  info: String,
  active: Boolean,
  tiles: [Schema.Types.Mixed]
});

module.exports = mongoose.model('World', WorldSchema);
Run Code Online (Sandbox Code Playgroud)

种子:

 var newWorld = new WorldModel({
                    _id: planet._objectId, …
Run Code Online (Sandbox Code Playgroud)

javascript json chunked-encoding node.js angularjs

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

按下键时C#和Unity3D

我是C#的新手.我在Unity中创建了一些东西来帮助我更好地学习C#和Unity.

我想知道原因:

Input.GetKeyDown(KeyCode.UpArrow))
Run Code Online (Sandbox Code Playgroud)

放入内部时仅触发一次:

void Update()
Run Code Online (Sandbox Code Playgroud)

由于更新是一个循环,为什么在按住键的同时不会触发(在我的情况下导致球体移动)?

我已经设法通过使用两个在按下和释放按键时改​​变的bool来工作.

这是我正在玩的完整脚本,用于移动球体并模拟加速/减速:

using UnityEngine;
using System.Collections;

public class sphereDriver : MonoBehaviour {
int x ;
bool upPressed = false ;
bool downPressed = false ;
void Start()
{
    x = 0 ;
}

void Update ()
{
    if(x > 0) {
        x -= 1 ;
    }
    if(x < 0) {
        x += 1 ;
    }
    if(Input.GetKeyDown(KeyCode.UpArrow))
    {
        upPressed = true ;
    }
    else if(Input.GetKeyUp(KeyCode.UpArrow))
    {
        upPressed = false ;
    }

    if(upPressed == true) …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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

隐藏C#中的花括号

回到Python之后,我开始注意到并且越来越多地被我的C#编码风格所困扰,需要在任何地方使用括号

 if (...)
 {
     return ...;
 }
 else
 {
     return ...;
 }
Run Code Online (Sandbox Code Playgroud)

更喜欢(主观)更清洁的python反对部分

if ...:
    return ...
else
    return ...
Run Code Online (Sandbox Code Playgroud)

我有什么方法可以隐藏这些大括号(因为他们平均占据我编码屏幕的30%左右,看起来很难看!)

c# python coding-style

7
推荐指数
2
解决办法
728
查看次数

从python中的类变量调用class/static方法

我正在尝试使ImageLoader类处理图像资源的加载和处理,如下所示:

class ImageLoader:
    TileTable = __loadTileTable('image path', some other variable)

    @staticmethod
    def _loadTileTable(arg1, arg2):
        blah blah
Run Code Online (Sandbox Code Playgroud)

然而,在编译我得到: NameError: name '_loadTileTable' is not defined

如果我替换第二行TileTable = ImageLoader.__loadTileTable('image path', some other variable)然后我得到NameError: name 'ImageLoader' is not defined

当我从C#转到Python时,静态类的静态类就是我用来实现它的.但是,我对如何在python中执行此操作持开放态度(即,仅通过其功能将调用静态库函数组合在一起).

更新: 阅读完两个答案后,我得到一张照片,我正在尝试做的事情可能不对.我将如何改变ImageLoader,以便我可以这样做:

假设tile表返回了一个数组

module1.py

aTile = ImageLoader.TileTable[1]
Run Code Online (Sandbox Code Playgroud)

module2.py

anotherTile = ImageLoader.TileTable[2]
Run Code Online (Sandbox Code Playgroud)

理想情况下,我只会填充一次TileTable.

更新:

感谢所有的答案,我找到了我在python模块doco中只填充一次TileTable的最后答案

"模块可以包含可执行语句和函数定义.这些语句用于初始化模块.它们仅在模块第一次导入时才执行"

对于静态类,我将放弃类并只创建一个模块级变量.

python class

7
推荐指数
2
解决办法
5833
查看次数

使用moq验证列表

给出调用代码

List<Person> loginStaff = new List<Person>(); 

loginStaff.add(new Person{FirstName = "John", LastName = "Doe"});

this._iViewLoginPanel.Staff = loginStaff;
Run Code Online (Sandbox Code Playgroud)

验证是否存在名为john doe的员工并且至少有一名员工被设置的语法是什么?目前,我看到的所有示例都非常基本,仅使用It.IsAny或Staff =某些基本类型,但实际上没有验证复杂类型(如列表)中的数据.

我的断言看起来像

this._mockViewLoginPanel.VerifySet(x=> x.Staff = It.IsAny<List<Person>>());
Run Code Online (Sandbox Code Playgroud)

它只检查给定位器的类型,而不检查列表本身的大小或项目.我试过这样的事情:

        this._mockViewLoginPanel.VerifySet(
           x =>
           {
               List<string> expectedStaffs = new List<string>{"John Doe", "Joe Blow", "A A", "Blah"};
               foreach (Person staff in x.Staff)
               {
                   if (!expectedStaffs.Contains(staff.FirstName + " " + staff.LastName))
                       return false;
               }
               return true;
           });
Run Code Online (Sandbox Code Playgroud)

但这告诉我lambda语句体不能转换为表达式树.然后我得到了将语句体放入函数并运行它的想法,但在运行时我得到:

System.ArgumentException:Expression不是属性setter调用.

更新: 根据使用assert的前两个答案,我尝试了该方法,但发现即使将Staff设置为非空列表,它仍然在调试中显示为null.所以这就是完整测试的样子

[TestMethod]
public void When_The_Presenter_Is_Created_Then_All_CP_Staff_Is_Added_To_Dropdown()
{
    this._mockViewLoginPanel = new Mock<IViewLoginPanel>();

    PresenterLoginPanel target = new PresenterLoginPanel(this._mockViewLoginPanel.Object);

    this._mockViewLoginPanel
        .VerifySet(x => …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing moq mocking

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

linq to sql:指定JOIN而不是LEFT OUTER JOIN

鉴于我有三张桌子,车辆,汽车,自行车.汽车和自行车都有车辆ID FK,可以链接到车辆.

我想要计算所有像这样的汽车.

Vehicles.Select(x=>x.Car).Count();
Run Code Online (Sandbox Code Playgroud)

但是,这将为我提供所有车辆行,并在车辆类型为自行车的行中放置空值.
我正在使用linqpad执行此操作并查看sql语句我意识到它之所以这样做是因为在x.Car连接时它在车辆和汽车之间执行LEFT OUTER JOIN,这意味着它将返回所有车辆.如果我将查询更改为只使用JOIN,那么它按预期工作.

有没有办法告诉linq使用这种语法进行连接?最终我想做的事情如下:

Vehicles.Select(x=>x.Car.CountryID).Distinct().Dump();
Run Code Online (Sandbox Code Playgroud)

但是由于这个错误:

InvalidOperationException: The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type.
Run Code Online (Sandbox Code Playgroud)

我最终这样做了:

Vehicles.Where(x=>x.Car!=null).Select(x=>x.Car.CountryID).Distinct().Dump();
Run Code Online (Sandbox Code Playgroud)

c# linq linqpad linq-to-sql

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

接线员'??' 不能应用于子类的类型的操作数

以下代码在Main函数的第二行的标题中给出了错误.

public class P {}

public class B : P {}

public class A : P {}

void Main()
{   
    P p = GetA()??GetB();
}

public A GetA() 
{
    return new A();
}

public B GetB()
{
    return new B();
}
Run Code Online (Sandbox Code Playgroud)

像这些简单的调整线

    p = (P)GetA()??GetB();
    or
    p = GetA()??(P)GetB();
Run Code Online (Sandbox Code Playgroud)

作品.

我很好奇为什么编译器不明白两者都是左侧容器的子类并允许没有强制转换的操作?

c# casting language-design

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

NameError - 未定义全局名称

我试图从html表单中读取一些数据并将其插入数据库.这样做我坚持这个错误"/ nameEmployee /的NameError:全局名称'get_post_param'未定义"; 我会在这里粘贴我的代码.有人可以帮我解决这个问题.
VIEWS.PY

def createEmployee(request):
    if request.method == "POST":
        userName = get_post_param(request,"userName")
        designation = get_post_param(request,"designation")
        employeeID = get_post_param(request,"employeeID")
        contactNumber = get_post_param(request,"contactNumber")
        project = get_post_param(request,"project")
        dateOfJoin = get_post_param(request,"dateOfJoin")
        EmployeeDetails(userName=userName,designation=designation,employeeID=employeeID,contactNumber=contactNumber,project=project,dateOfJoin=dateOfJoin).save()
        return render_to_response('createEmployee.html')
    else:
        return render_to_response('createEmployee.html')
Run Code Online (Sandbox Code Playgroud)

TEMPLATE.PY

<form action="http://127.0.0.1:8000/createEmployee/" method="POST"> 
Name: <input type="text" name="userName" /><br />
Designation: <input type="text" name="designation" /><br>
EmployeeID: <input type="text" name="employeeID" /><br>
Contact Number: <input type="text" name="contactNumber" /><br>
Project: <input type="text" name="project" /><br>
Date Of Join: <input type="text" name="dateOfJoin" /><br>
<input type="submit" value="Submit" /><br />
</form>
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-models django-views

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