在我正在尝试编写的应用程序中,主页面(http:// localhost:8675)具有以下形式:
<form action='/?joinnew' method='post'>
<button>Start</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是server.js中的代码:
http.createServer(function(request, response) {
var root = url.parse(request.url).pathname.split('/')[1];
if (root == '') {
var query = url.parse(request.url).search:
if (query == '?joinnew') {
var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc.
// redirect the user's web browser to a new url
// ??? How to do. Need to redirect to 'http://whateverhostthiswillbe:8675/'+newRoom
...
}}}
Run Code Online (Sandbox Code Playgroud)
如果有办法在我不需要知道主机地址的情况下,我会很高兴,因为这可能会改变.
'http'对象是常规需求('http'),不需要('express').
有没有办法创建一个对象数组作为构造函数或方法的一部分?我真的不确定怎么说这个,所以我举了一个例子.我有一个枚举,其中一个字段是数字数组.这是我尝试过的:
public enum KeyboardStuff {
QWERTY(1, {0.5f, 1.3f, 23.1f}, 6);
DVORAK(5, {0.1f, 0.2f, 4.3f, 1.1f}, 91);
CHEROKEE(2, {22.0f}, 11);
private int number, thingy;
private float[] theArray;
private KeyboardStuff(int i, float[] anArray, int j) {
// do things
}
}
Run Code Online (Sandbox Code Playgroud)
编译器说括号{}无效,应该删除.有没有一种方法可以将数组作为参数传递而不事先创建对象数组?
可能重复:
Java如何:通用阵列创建
错误通用阵列创建
我的任务是用Java编写哈希表,它必须适用于任何数据类型.我写的代码的规则如下: - 哈希表必须有一个数组作为底层数据结构,在构造对象时确定的大小 - 当发生冲突时,应该放置碰撞的元素到链表中,它包含哈希表中该索引(键)的所有元素
因此,对于底层数据类型,我创建了一个LinkedList类型的数组(自定义,而不是Java API LinkedList).
private LinkedList<T>[] table;
Run Code Online (Sandbox Code Playgroud)
当然,问题是实例化这个数组.以下是我的一些尝试:
public HashTable(int size) {
table = new LinkedList<T>[size];
}
Run Code Online (Sandbox Code Playgroud)
这会引发编译时泛型数组创建错误.
public HashTable(int size) {
table = (LinkedList<T>[])(new Object[size]);
}
Run Code Online (Sandbox Code Playgroud)
这会ClassCastException
在运行时导致错误(java.lang.Object
无法转换为LinkedList
).
项目负责人也不确定如何处理这个问题.有什么方法可以更改我的代码,以便哈希表仍然有一个数组作为其底层数据结构,并将冲突放在LinkedList中?
在Haskell中,有没有办法通过其组件的值来限制数据类型?我已经起草了一个例子.假设你有一个跳棋游戏.检查器可以是黑色或白色类型.
data CheckerType = BlackChecker | WhiteChecker deriving (Eq)
data Checker = Checker CheckerType Int
Run Code Online (Sandbox Code Playgroud)
棋盘游戏的游戏板包含一组黑色棋子和白棋子.
data GameBoard = GameBoard ([Checker]) ([Checker])
Run Code Online (Sandbox Code Playgroud)
在之前的声明中,有没有办法在第一个[Checker]中强制执行CheckerType为CheckerType黑色,第二个是相反类型的Checkers?
我试图通过List中包含的Map的内容过滤DynamoDB查询.这是我正在处理的结构的一个例子.
{
'EventType': 'git/push'
'EventTime': 1416251010,
'Commits': [
{
'id': '29d02aff...',
'subject': 'Add the thing to the place'
},
{
'id': '9d888fec...',
'subject': 'Spelling errors'
},
...
]
}
Run Code Online (Sandbox Code Playgroud)
散列键是EventType
和范围键EventTime
.我正在尝试编写一个过滤器,将查询结果过滤到特定的id
.是否可以创建一个正确过滤查询的DynamoDB过滤器表达式?(我的第一个想法是使用contains (a, a)
,但我认为这不适用于地图列表.)
我正在尝试向保存该类实例的类添加一个变量。以下是我的代码的缩短版本。
class Classy :
def __init__(self) :
self.hi = "HI!"
# "CLASSIES" variable holds instances of class "Classy"
CLASSIES = []
for i in xrange(0,4) :
CLASSIES.append(Classy())
Run Code Online (Sandbox Code Playgroud)
运行代码后,我收到以下错误。
Traceback (most recent call last):
File "classy.py", line 6, in Classy
CLASSIES.append(Classy())
NameError: name 'Classy' is not defined
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法可以将类的实例添加到该类中的类/静态变量?
我有一个Makefile规则,需要将shell命令的结果存储到变量中供以后使用.出于某种原因,似乎$(shell)
一旦我的规则匹配就会执行调用,而不是在执行期间遇到它.
该文件如下:
TMPDEV=/tmp/disk.img
$(TMPDEV):
fallocate -l 806354944 $(TMPDEV)
sudo parted --script $(TMPDEV) unit s mklabel msdos \
mkpart primary fat16 2048 526335 \
mkpart primary fat32 526336 1050623 \
mkpart primary NTFS 1050624 1574911 \
quit
$(eval TMPDISK := $(shell sudo partx --verbose -a $(TMPDEV) | tail -1 | cut -d':' -f1))
echo $(TMPDISK)
sudo mkfs.fat -F 16 -n FAT16 $(TMPDISK)p1
Run Code Online (Sandbox Code Playgroud)
TMPDISK
至少在fallocate
通话之后,不可能知道它的价值是多少; 这就是为什么$(eval)
语句被延迟到磁盘映像被分区之后.
我收到的输出是:
$ make
partx: stat failed /tmp/disk.img: No such file …
Run Code Online (Sandbox Code Playgroud) 我已经定义了类似于以下的Haskell类型:
data TypeData = TypeA Int | TypeB String | TypeC Char deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)
在某些时候,我需要一种方法来过滤[TypeData]
所有非TypeC实例.我想写的函数的签名是:
-- Returns a tuple containing (TypeC elements, non-TypeC elements)
partitionTypeCs :: [TypeData] -> ([TypeData],[TypeData])
Run Code Online (Sandbox Code Playgroud)
该partition
功能似乎适合这个:
-- Attempt:
partitionTypeCs data = partition (TypeData -> Bool) data
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚哪种函数与类型签名相匹配TypeData -> Bool
.看起来我需要一个可以确定类型实例是否属于特定实例的函数.我知道我可以通过编写另一个函数(isTypeC (TypeC _) = True
)来使用模式匹配,但是有更通用的方法或匹配类型实例的线条方式吗?
我试图在单个SQL查询中使用多个表的多个聚合函数(使用Postgres).
我的表结构类似于以下内容:
CREATE TABLE user (user_id INT PRIMARY KEY, user_date_created TIMESTAMP NOT NULL);
CREATE TABLE item_sold (item_sold_id INT PRIMARY KEY, sold_user_id INT NOT NULL);
CREATE TABLE item_bought (item_bought_id INT PRIMARY KEY, bought_user_id INT NOT NULL);
Run Code Online (Sandbox Code Playgroud)
我想计算每个用户购买和销售的商品数量.我想到的解决方案不起作用:
SELECT user_id, COUNT(item_sold_id), COUNT(item_bought_id)
FROM user
LEFT JOIN item_sold ON sold_user_id=user_id
LEFT JOIN item_bought ON bought_user_id=user_id
WHERE user_date_created > '2014-01-01'
GROUP BY user_id;
Run Code Online (Sandbox Code Playgroud)
这似乎执行了(item_sold_id,item_bought_id)的所有组合,例如,如果有4个已售出且2个已购买,则两个COUNT()都是8.
如何正确查询表以获取两个计数?
arrays ×2
haskell ×2
java ×2
types ×2
amazon-s3 ×1
api ×1
arguments ×1
c ×1
callback ×1
class ×1
constructor ×1
declaration ×1
eval ×1
filtering ×1
generics ×1
hashtable ×1
http ×1
instance ×1
join ×1
left-join ×1
linked-list ×1
makefile ×1
node.js ×1
nosql ×1
parameters ×1
post ×1
postgresql ×1
python ×1
redirect ×1
sql ×1
webserver ×1