javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

语法-将“ mut”放在变量名之前和“:”之后有什么区别?

这是我在Rust文档中看到的两个函数签名:

fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo }
fn modify_foo(foo: &mut i32) { *foo += 1; *foo }

为什么放置mut不同?

似乎第一个函数也可以声明为

fn modify_foo(foo: mut Box<i32>) { /* ... */ }
trans by 2020-02-16T10:13:16Z

.net-字符串是值类型还是引用类型?

字符串是值类型还是引用类型?

我只是找不到这个的“好”解释。

trans by 2020-02-10T14:55:28Z

CodeGo.net>设置自定义路径到引用的DLL的?

我有一个C#项目(称为Assembly.Load),它引用了其他几个DLL项目。 通过将这些项目添加到Assembly.LoadFile的引用中,它将构建它们并将其生成的DLL复制到MainProj的工作目录中。

我想做的是让这些引用的DLL位于Assembly.Load的工作目录的子目录中,即MainProj / bin / DLLs,而不是工作目录本身。

我不是一个非常有经验的C#程序员,但是来自C ++世界,我假设一种方法是删除项目引用并按路径和文件名显式加载所需的DLL(即在C ++中为Assembly.Load)。 但是,如果可以的话,我想做的是设置某种“引用二进制路径”,这样在我构建时它们都将被自动复制到该子目录(然后从那里被引用而无需 我需要显式加载每个)。 这样的事情可能吗?

如果不是,那么在C#中完成我所追求的目标的首选方法是什么(即使用Assembly.Load/Assembly.LoadFile/Assembly.LoadFrom?也许是AppDomain还是System.Environment?)

trans by 2020-02-08T09:39:16Z

java-什么是类,引用和对象?

我从事Java编程已有2年了,显然我遇到了一个问题,我又无法理解和区分类,引用和对象(我不明白为什么我忘记了这些概念)。

让我们来解决这个问题,尽管我已经知道对象是什么,但是我不确定类或引用是否相同。

有人可以很好地理解并且完整地区分什么是类,引用和对象吗?

我所知道的是,类更像是对象的模板(房屋的蓝图,其中类是蓝图,房屋是对象)。

trans by 2020-02-05T02:15:32Z

参考-从单元格ab获取值

Google Spreadsheets中的单元格的值可能会达到上面的值吗?

含义:在一个单元格A2中,我想显示上方单元格的值A1。不是因为它是该坐标,而是因为它是上方的单元格。 我通过简单地将值设置为等于上面的单元格来做到这一点:

enter image description here

如果在这两者之间创建新行,则会得到以下信息:

enter image description here

众所周知,值没有变化,因为引用不是以这种方式相对的。 如何使其相对于单元格,所以我总是在nomatter上方选择单元格,这有什么变化? 我希望结果是这样的:

enter image description here

当然,相对一词是错误的,但我希望你能理解我的意思。 我俩都希望有通常的相对行为(以便我可以移动单元格本身,并且其引用将适合新的列和行),以及引用不指向特定固定坐标而是指向路径的特定路径的行为。 细胞本身。

trans by 2020-02-02T19:27:43Z

CodeGo.net>如何分配List <T>而不引用原始List <T>?

例如

List<string> name_list1 = new List<string>();
List<string> name_list2 = new List<string>();

稍后在代码中:

name_list1.Add("McDonald");
name_list1.Add("Harveys");
name_list1.Add("Wendys");

name_list2 = name_list1; // I make a copy of namelist1 to namelist2

因此,从这一点出发,我想继续在name_list2中添加元素或进行更改,而不影响name_list1。 我怎么做?

trans by 2020-01-30T07:58:38Z

为什么const char * const&=“ hello”可以编译?

我正在阅读一本书中的代码片段,并发现以下内容:

const char* const & a = "hello"; //can compile 
const char*& a = "hello"; //cannot

我所知道的是,初始化引用时,数组到指针的转换不会发生。

const(对const的引用),指针指向const char

const,对const的引用,指针指向const char

那么,为什么要添加一个额外的const来指示指针是const,则允许它进行编译?

trans by 2020-01-21T12:32:59Z

为什么我们不能锁定值类型?

当我遇到以下错误时,我试图x一个xToTrue变量:

'bool'不是锁语句要求的引用类型

似乎x语句中仅允许使用引用类型,但是我不确定我为什么会这样。

Andreas在他的评论中指出:

当[值类型]对象从一个线程传递到另一个线程时,将进行复制,因此线程最终可以在2个不同的对象上工作,这是安全的。

是真的吗 这是否意味着当我执行以下操作时,实际上是在xToTruexToFalse方法中修改了两个不同的x

public static class Program {

    public static Boolean x = false;

    [STAThread]
    static void Main(string[] args) {

        var t = new Thread(() => xToTrue());
        t.Start();
        // ...
        xToFalse();
    }

    private static void xToTrue() {
        Program.x = true;
    }

    private static void xToFalse() {
        Program.x = false;
    }
}

(仅此代码在其状态下显然是无用的,仅用于示例)


附注:我知道有关如何正确锁定值类型的问题。 我的问题与如何无关,而与原因无关。

trans by 2020-01-20T07:11:38Z

指针-C ++中*&和**&的含义

我在函数声明中多次发现了这些符号,但我不知道它们的含义。

例:

void raccogli_dati(double **& V, double **p, int N) { 
  int ultimo = 3; 
  V = new double * [N/2]; 
  for(int i=0; i < N/2; i++) { 
    V[i] = new double[N/2], std :: clog << "digita " << N/2 - i
                 << " valori per la parte superiore della matrice V: "; 
    for(int j=i; j < N/2; j++) 
      std :: cin >> V[i][j], p[ultimo++][0] = (V[i][j] /= sqrt(p[i][0]*p[j][0]));
  } 
  for(int i=1; i < N/2; i++) 
    for(int j=0; j < i; j++) 
       V[i][j] = V[j][i];
}
trans by 2020-01-19T00:06:15Z

带有ref变量的Func委托

public object MethodName(ref float y)
{
//method
}

如何为该方法定义Func委托?

trans by 2020-01-15T18:19:54Z

c#-在XML代码注释中引用泛型类型

这个问题已经在这里有了答案:

  • 如何在xml文档中引用通用类和方法                                     7个答案

据我所知,在C#类型/方法的XML注释中,可以像这样在标记中引用通用类型:

///<see cref="name.space.typename&lt;T&rt;(paramtype)">

但是我认为,还有另一种语法,它不太笨拙? 要摆脱那些HTML实体“ <”吗? 我现在找不到。 有人可以帮忙吗?

trans by 2020-01-12T17:31:04Z

声明参考并稍后初始化?

我引用了269749105666031717184,但是确切的对象取决于条件。 所以我想做这样的事情:

MyObject& ref; 
if([condition]) 
  ref = MyObject([something]) 
else 
  ref = MyObject([something else]);

我现在无法执行此操作,因为编译器不允许我声明但不能初始化引用。 我该怎么做才能实现自己的目标?

trans by 2020-01-11T05:31:45Z

有没有一种方法可以基于Visual Studio中的构建配置指定程序集引用?

我有一个项目,可以通过其API向其他应用程序添加一些可扩展性。 但是,我希望能够将同一项目用于其应用程序的多个版本,因为大多数代码是相同的。

但是,该应用程序的每个版本都需要引用该软件版本的正确程序集。 他们将程序集加载到GAC中,因此即使我可以根据构建配置指定要使用的程序集版本,也可以。 有没有办法从VS内部执行此操作,或者我需要外部构建工具?

trans by 2020-01-02T20:54:41Z

java-基本类型和引用类型之间有什么区别?

这是过去的考试问题,我想知道什么是原始类型和引用类型?对于数组,我知道引用类型是由对象或变量组成的数组,而原始类型是仅使用int或字符串创建数组的类型。 (对?)

您认为您会如何回答测试中的问题并获得良好的信誉? 如果没有真正直接引用原始的ARRAY类型,有没有办法做到这一点? 或者您认为只用数组解释它会很好。

trans by 2020-01-02T15:24:01Z

垃圾回收-如何获取javascript对象引用或引用计数?

如何获取对象的引用计数

  • 是否可以确定一个javascript对象是否具有多个引用?
  • 或者,如果除我正在访问的参考之外,还有参考?
  • 甚至只是为了获取参考计数本身?
  • 我可以从javascript本身中找到此信息,还是需要跟踪自己的参考计数器。

显然,对于我的代码访问该对象,必须至少有一个对其的引用。 但是我想知道的是,是否还有其他引用,或者是否只有我的代码可以访问它。 如果没有其他引用,我希望能够删除该对象。

如果您知道答案,则无需阅读此问题的其余部分。 下面仅是一个使情况更清楚的示例。


用例

在我的应用程序中,我有一个coworkers.remove(2)对象实例friends.items,其中包含我所有联系人的数组。 还有多个friends.remove(4)对象实例,例如contactRepo集合和coworkers集合。 每个集合都包含一个数组,其中包含与contacts Repository不同的一组项。

样例代码

为了使这个概念更具体,请考虑以下代码。 coworkers.remove(2)对象的每个实例都包含特定类型的所有项目的列表。 您可能有一个联系人存储库和一个单独的事件存储库。 为了简单起见,您可以获取,添加和删除项,并通过构造函数添加许多项。

var Repository = function(items) {
  this.items = items || [];
}
Repository.prototype.get = function(id) {
  for (var i=0,len=this.items.length; i<len; i++) {
    if (items[i].id === id) {
      return this.items[i];
    }
  }
}
Repository.prototype.add = function(item) {
  if (toString.call(item) === "[object Array]") {
    this.items.concat(item);
  }
  else {
    this.items.push(item);
  }
}
Repository.prototype.remove = function(id) {
  for (var i=0,len=this.items.length; i<len; i++) {
    if (items[i].id === id) {
      this.removeIndex(i);
    }
  }
}
Repository.prototype.removeIndex = function(index) {
  if (items[index]) {
    if (/* items[i] has more than 1 reference to it */) {
      // Only remove item from repository if nothing else references it
      this.items.splice(index,1);
      return;
    }
  }
}  

请注意coworkers.remove(2)中带有注释的行。 如果没有其他对象引用该项目,我只想从我的对象主存储库中删除该项目。 这是friends.items

var Collection = function(repo,items) {
  this.repo = repo;
  this.items = items || [];
}
Collection.prototype.remove = function(id) {
  for (var i=0,len=this.items.length; i<len; i++) {
    if (items[i].id === id) {
      // Remove object from this collection
      this.items.splice(i,1);
      // Tell repo to remove it (only if no other references to it)
      repo.removeIndxe(i);
      return;
    }
  }
}

然后此代码使用coworkers.remove(2)friends.items

var contactRepo = new Repository([
    {id: 1, name: "Joe"},
    {id: 2, name: "Jane"},
    {id: 3, name: "Tom"},
    {id: 4, name: "Jack"},
    {id: 5, name: "Sue"}
  ]);

var friends = new Collection(
  contactRepo,
  [
    contactRepo.get(2),
    contactRepo.get(4)
  ]
);

var coworkers = new Collection(
  contactRepo,
  [
    contactRepo.get(1),
    contactRepo.get(2),
    contactRepo.get(5)
  ]
);

contactRepo.items; // contains item ids 1, 2, 3, 4, 5 
friends.items;  // contains item ids 2, 4
coworkers.items;  // contains item ids 1, 2, 5

coworkers.remove(2);

contactRepo.items; // contains item ids 1, 2, 3, 4, 5 
friends.items;  // contains item ids 2, 4
coworkers.items;  // contains item ids 1, 5

friends.remove(4);

contactRepo.items; // contains item ids 1, 2, 3, 5 
friends.items;  // contains item ids 2
coworkers.items;  // contains item ids 1, 5

请注意coworkers.remove(2)如何未从contactRepo删除ID 2? 这是因为仍从friends.items引用了它。但是,由于没有其他集合在引用它,因此friends.remove(4)导致将id 4从contactRepo中删除。

摘要

以上是我想做的。 我确信可以通过跟踪自己的参考计数器等来实现此目的。 但是,如果有一种使用javascript内置引用管理的方法,我想听听如何使用它。

trans by 2020-01-02T00:03:31Z

参考-如何使用DBR查询mongodb

假设我具有以下数据结构:

var user = {_id: 'foo', age: 35};
var post = {_id: '...', author: {$ref: user, $id: 'foo'},...};

如何查询所有引用user [foo]的帖子? 我尝试了以下操作,但不起作用:

db.post.find('author._id': 'foo');
var u = db.user.find({_id: 'foo'});
db.post.find('author': u);

我也无法从官方文档和Google中找到答案!

有人知道吗?

trans by 2020-01-01T15:03:22Z

有没有一种很好的方法来将std :: minmax(a,b)分配给std :: tie(a,b)?

std::tie(a, b) = std::minmax(a, b);

我认为这是直观的代码。 干净易懂。 太糟糕了,它无法正常工作,因为if (a >= b) { std::swap(a, b); }if (a >= b) { std::swap(a, b); }模板。因此,如果在auto& a, auto& b内部交换值,则一个分配将覆盖另一个值:

auto[a, b] = std::make_pair(7, 5);

std::tie(a, b) = std::minmax(a, b);

std::cout << "a: " << a << ", b: " << b << '\n';

a:5,b:5

这里的预期输出是if (a >= b) { std::swap(a, b); }


我认为这很重要,因为实现转换功能以将功能应用到某些范围需要直观的lambda声明。 例如:

std::vector<int> v{ 0, 1, 0, 2, 0 };
std::vector<int> u{ 1, 0, 1, 0, 1 };

perform(v.begin(), v.end(), u.begin(), [](auto& a, auto& b){ 
    std::tie(a, b) = std::minmax(a, b);    
}); 

//v would be == {0, 0, 0, 0, 0}
//u would be == {1, 1, 1, 2, 1}

我发现的一种解决方案是在if (a >= b) { std::swap(a, b); }上显式构造if (a >= b) { std::swap(a, b); }而不使用任何引用限定符来强制执行副本:

std::tie(a, b) = std::tuple<int, int>(std::minmax(a, b)); 

但是,这种if (a >= b) { std::swap(a, b); }的冗余似乎很糟糕,尤其是在之前说过auto& a, auto& b时。


有没有一种不错的,简短的方法来执行此作业? 可能这是错误的方向,只是说if (a >= b) { std::swap(a, b); }是最好的方法吗?

trans by 2019-11-16T06:14:48Z

引用成员变量作为类成员

在我的工作场所,我看到这种风格被广泛使用:

#include <iostream>

using namespace std;

class A
{
public:
   A(int& thing) : m_thing(thing) {}
   void printit() { cout << m_thing << endl; }

protected:
   const int& m_thing; //usually would be more complex object
};


int main(int argc, char* argv[])
{
   int myint = 5;
   A myA(myint);
   myA.printit();
   return 0;
}

有没有描述这个习语的名称? 我假设这是为了防止复制大的复杂对象的可能的大开销?

这是一般的好习惯吗? 这种方法有什么陷阱吗?

trans by 2019-11-16T01:50:52Z

在__init__.py中找不到引用“ xxx”-Python / Pycharm

我在皮查姆有一个组织如下的项目:

-- Sources
   |--__init__.py
   |--Calculators
      |--__init__.py
      |--Filters.py
   |--Controllers
      |--__init__.py
      |--FiltersController.py
   |--Viewers
      |--__init__.py
      |--DataVisualization.py
   |--Models
      |--__init__.py
      |--Data

我的所有__init__.py,除了上面的右一处以外,“ Sources”都是空白文件。我收到许多此类警告:

在__init__.py中找不到引用“ xxx”

例如,我的FiltersController.py具有以下代码:

import numpy.random as npr

bootstrap = npr.choice(image_base.data[max(0, x-2):x+3, max(0, y-2):y+3].flatten(), size=(3, 3), replace=True)

我得到这个警告:

在__init__.py中找不到引用“选择”

我正在想知道这是什么意思,我应该怎么做才能在Python中正确编码。

先感谢您。

trans by 2019-11-16T00:11:21Z

C ++-int vs const int&

我注意到我通常使用常量引用作为返回值或参数。 我认为原因是它的工作原理与在代码中使用非引用的工作原理几乎相同。 但这肯定会占用更多空间,并且函数声明会变得更长。 我对这样的代码还可以,但是我认为有些人觉得我的编程风格不好。

你怎么看? 是否值得编写const int&over int? 我认为它还是由编译器优化的,所以也许我只是在浪费时间编码它,对吗?

trans by 2019-11-13T11:00:09Z

1 2 3 4 5 下一页 共5页