问题列表 - 第31455页

Haskell:除了monad之外,"do"符号对于上下文有用吗?

我们都喜欢do,而且我很好奇,如果这种替代语法在理论上可能在monad世界之外有用.如果是这样,它会简化哪些其他类型的计算?例如,为Applicative提供相同的东西是否有意义?

syntax haskell

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

Java抽象类或静态实用类设计选择

我正在实施一些策略(策略模式),这些策略有一些共同的行为,并且在常见操作应该存在的地方尚未确定.

  • 假设我有1个上下文和3个策略,策略中使用的一些操作是共享的,有些仅需要2个其他操作,只需要1个策略.
  • 没有成员级别的状态共享,因此唯一的操作实际上是无状态的.
  • 操作的目的是支持将状态格式化为文件,例如视图助手.

选项1:创建一个AbstractStrategy类

  • 我正在使用Java,因此将来会立即使用此功能.
  • 继承倾向于导致.在山脊结构中.
  • 运营将是最终的.

选项2:创建一个Util类的静态助手

  • 灵活,但由于某种原因感觉像代码味道.
  • 没有山脊.

任何建议或偏好?

请注意,我正在处理的级别是策略级别,而不是上下文级别(请参阅维基百科链接).

java oop design-patterns

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

JavaScript 中的段落

你知道是否有一种简单的方法可以只使用 javascript 来计算文本区域中的段落数?

谢谢,

javascript count paragraphs

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

为什么提出NSException而不是关闭我的应用程序?

问题

我正在编写一个Cocoa应用程序,我想提出异常会使应用程序崩溃.

我的应用程序委托中有以下行:

[NSException raise:NSInternalInconsistencyException format:@"This should crash the application."];
abort();
Run Code Online (Sandbox Code Playgroud)

问题是,他们没有关闭应用程序 - 消息只是记录到控制台,应用程序继续它的快乐方式.

据我了解,例外的全部内容是它们在特殊情况下被解雇.在这种情况下,我希望应用程序以明显的方式退出.这不会发生.

我试过的

我试过了:

-(void)applicationDidFinishLaunching:(NSNotification *)note
    // ...
    [self performSelectorOnMainThread:@selector(crash) withObject:nil waitUntilDone:YES];
}

-(void)crash {
    [NSException raise:NSInternalInconsistencyException format:@"This should crash the application."];
    abort();
}
Run Code Online (Sandbox Code Playgroud)

哪个不起作用

-(void)applicationDidFinishLaunching:(NSNotification *)note
    // ...
    [self performSelectorInBackground:@selector(crash) withObject:nil];
}

-(void)crash {
    [NSException raise:NSInternalInconsistencyException format:@"This should crash the application."];
    abort();
}
Run Code Online (Sandbox Code Playgroud)

相当令人困惑的是,它按预期工作.

这是怎么回事?我究竟做错了什么?

crash cocoa multithreading exception raise

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

Drupal 6管理节点权限忽略了内容类型权限

我需要为不同的用户角色设置不同的"创建内容"权限.仅当特定角色未获得"管理节点"权限时,这似乎才有效.但是,如果没有此权限,该角色将无权控制是否发布节点(我需要)或查看内容管理表(主页>管理>内容管理).

例如,我希望用户角色能够创建新的新闻项并能够发布/取消发布,但不能创建新页面(但能够编辑现有页面).

有没有人知道这方面的方法?或者应该设置哪些权限?

permissions drupal drupal-6

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

在ArrayList中的ensureCapacity方法中使用的逻辑

我正在浏览ArrayList的源代码.我遇到了方法ensureCapacity(),它增加了内部使用的数据数组的容量.其中,数据阵列的新容量基于逻辑而增加,int newCapacity = (oldCapacity * 3)/2 + 1;其中旧容量是当前数据阵列大小.有没有什么特别的理由选择 (oldCapacity * 3)/2 + 1它作为新的阵列大小,如果是这样的话是什么?

/**
 * Increases the capacity of this <tt>ArrayList</tt> instance, if
 * necessary, to ensure that it can hold at least the number of elements
 * specified by the minimum capacity argument.
 *
 * @param   minCapacity   the desired minimum capacity
 */
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
    Object oldData[] = elementData;
    int newCapacity = (oldCapacity * …
Run Code Online (Sandbox Code Playgroud)

java

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

如何通过多个线程成功访问和循环ArrayList?

我在ArrayList中需要帮助.我有一个字符串的arraylist.我循环遍历此列表并将它们一个接一个地发送到输出流.当我循环遍历列表并发送它们时,另一个线程可能会向其添加一些元素.发送元素后,也必须从列表中删除它.

我怎样才能成功实现这一目标?

java arraylist thread-safety

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

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

如何在包装Firebug(或类似的)控制台api时访问行号

我已经包装了控制台API,以提供精细的日志记录级别以及其他一些糖功能.

这很好,唯一的问题是firebug(或其他任何控制台)将始终报告日志来自控制台API本身的行号.

你怎么建议我让控制台记录我调用包装函数的行号?

我更喜欢跨浏览器解决方案,但没有一个firebug插件可能是一个良好的开端.

我这样称呼我的登录功能:

db.log(db.LogLevel.WARN, "Blah Blah Blah");
Run Code Online (Sandbox Code Playgroud)

javascript console firebug logging line-numbers

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

在触发器中使用inserted和deleted表

我想编写触发器来处理inserted和deleted表.我写了插入的触发器:

CREATE TRIGGER FILL_TABLE
ON Person FOR INSERT
AS
DECLARE @ID int
SELECT @ID = p.ID
FROM Person AS p 
    INNER JOIN inserted AS i ON p.ID = i.ID 
DECLARE @uName char(30);
SELECT @uName = SYSTEM_USER
INSERT tblOperationLog 
 Values 
 ( @uName, 'user has inserted a row with ID = ' + CONVERT(nvarchar, @ID) + '', 
    'Insert', CURRENT_TIMESTAMP, GETDATE() )
Run Code Online (Sandbox Code Playgroud)

我想编写触发器并使用已删除的表,就像插入的一样.但我不知道怎么做.我想检索已删除行的ID以填充tblOperationLog的第二列,但我不能.我也应该使用内连接吗?

t-sql sql-server triggers

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