小编May*_*ron的帖子

Java - 包含对原始List的引用的克隆列表

我不确切知道如何复制Java中的List.我有这个代码:

List<String> copy = new ArrayList<String>(original);
Run Code Online (Sandbox Code Playgroud)

这是否会创建一个名为copy的新List,它只保存对原始列表中对象的引用?(这就是我要的).或者它会创建新的字符串对象并消耗不必要的内存?

当我从副本列表中删除项目时,这只会删除一个引用而不是从两个列表中删除该对象吗?

谢谢阅读!

java clone copy list

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

从Lua中的表中删除Metatables

我想从表中"解开"一个元表,并想知道是否:

tbl = setmetatable(tbl, false) -- or nil
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我找不到任何有关如何正确执行此操作的信息.我需要使用赋值运算符吗?

另外,如果metatable从未有过引用并且是匿名的话,这是否足以破坏附加到表的元表?:

tbl = setmetatable({}, {__index = something})
-- later on:
tbl = nil
Run Code Online (Sandbox Code Playgroud)

垃圾收集器就足以删除两个表?

lua garbage metatable

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

使用具有嵌套路由的 Reach Router 无法解析参数

使用 Reach 路由器(不是 React 路由器!),我有 2 个嵌套路由:

/g/123 /g/123/about

其中 123 是一个:groupId参数:

import React from "react";
import { Router } from "@reach/router";
import GroupPage from "../components/dynamic-pages/group";
import PostsView from "../components/group/views/posts";
import AboutView from "../components/group/views/about";

const App = () => {
  return (
    <Router>
      <GroupPage path="/g/:groupId">
        <PostsView path="/" />
        <AboutView path="/about" />
      </GroupPage>
    </Router>
  );
};

export default App;
Run Code Online (Sandbox Code Playgroud)

在外部GroupPage组件中我需要使用:groupId参数:

const GroupPage: React.FC<RouteComponentProps> = ({ children }) => {
  debugger;
  const params = useParams();
  const …
Run Code Online (Sandbox Code Playgroud)

reactjs reach-router

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

Java - 这两个对象如何相互平等?

嗨,我正在修改并理解equals()和'=='之间的区别,但是这段代码真让我困惑:

public class MyTest {
    public static void main(String[] args) {
        Integer w = new Integer(1);
        Integer x = 1;
        double z = x;
        System.out.println(z == w);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用'=='时,double对象如何与内存中的Integer对象具有相同的引用?无法理解这一点.谢谢你的阅读!

java reference object

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

C++如何在不破坏程序的情况下输入用户值

我试图从用户获得一个整数,但如果他们输入"ckefkfek",它将导致程序垃圾邮件和破坏.我也希望他们输入一个浮点数,但我得到了同样的问题,并没有线索如何检查这个.

int option = 0;
while (option != 3)
{
    cout << "Enter 1, 2, or 3: ";
    cin >> option;
    switch (option)
    {
        case 1:
            cout << "Enter a float: ";
            float myfloat;
            cin >> myfloat;
            myFunc(myfloat); // must be a float for this function to work.
            break;
        case 2:
            // do stuff
            break;
        case 3:
            // do stuff
            break;
        default:
            cout << endl << "Not a valid option." << endl;
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有不断的错误,我该怎么做?谢谢!

c++ types input cin

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

C++ - 指针数组,为什么这样声明?

不知道如何写标题,但希望它的一些准确.

我从一本书中找到了这个代码,我很困惑为什么它以这种方式声明(对C++来说是新的)以及它实际意味着什么,因为这本书没有很好地解释它并使我更加困惑:

const char * const suit[4] = {"Hearts", "Diamonds", "Clubs", "Spades"};
Run Code Online (Sandbox Code Playgroud)

我不明白使用2个const声明以及字符串数组实际上是一个字符数组.所以,如果这些是c字符串,它们的长度不应该是4吗?或者因为它们是指针,这是否意味着它指向每个字符串的第一个字符?

只需要一个人向我解释发生了什么,谢谢!

c++ arrays pointers declaration

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

C++ - 参考在哪里放?

嗨,我有一个基本的问题,抱歉,如果它是一个重复,但我似乎无法找到我正在寻找与谷歌.

我有这个功能签名:

ostream& operator<<(ostream& o, const Test& t) {...}
Run Code Online (Sandbox Code Playgroud)

并且引用"&"的排序有时让我困惑,因为它有时会在函数名/参数的前面:

ostream &operator<<(ostream &o, const Test &t) {...}
Run Code Online (Sandbox Code Playgroud)

这有什么不同或有不同的含义?任何解释都会很精彩,谢谢!

编辑:他们似乎在编译时工作正常,但我应该使用哪一个?

c++ reference function

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