问题列表 - 第25991页

在python中模拟C风格的循环

(即使这个标题会导致火焰,我意识到)

Python做出了深思熟虑的设计选择,让for循环使用显式迭代,在大多数情况下,代码大大简化了.

但是,如果你的测试用例和更新函数很复杂,有时构造一个iterable会非常麻烦,所以我发现自己编写了以下while循环:

val = START_VAL
while <awkward/complicated test case>:
    # do stuff
    ...
    val = <awkward/complicated update>
Run Code Online (Sandbox Code Playgroud)

这个问题是更新位于while块的底部,这意味着如果我想在其中continue嵌入某个地方,我必须:

  • 使用重复代码进行复杂/ awkard更新,AND

  • 冒着忘记它并让我的代码无限循环的风险

我可以去手动滚动一个复杂的迭代器:

def complicated_iterator(val):
    while <awkward/complicated test case>:
         yeild val
         val = <awkward/complicated update>

for val in complicated_iterator(start_val):
    if <random check>:
         continue # no issues here
    # do stuff
Run Code Online (Sandbox Code Playgroud)

这让我感到震惊,因为waaaaay太冗长和复杂.堆栈溢出中的人有一个更简单的建议吗?

回复评论:

@Glenn Maynard:是的,我驳回了答案.如果有一种方法可以在一个方法中编写五行,那就太糟糕了......特别是在一直出现的情况下(循环是图灵完成程序的一个共同特征).

对于寻找具体示例的人:假设我正在使用自定义日期库.那么我的问题是,你将如何在python中表达这一点:

for (date = start; date < end; date = calendar.next_quarter_end(date)):
    if another_calendar.is_holiday(date):
       continue
    # ... do stuff...
Run Code Online (Sandbox Code Playgroud)

python

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

如何只给出一个文件来创建CommonsMultipartFile对象

我有一个junit测试方法,它将CommonsMultipartFile对象作为参数.

我正在尝试创建一个FileItem对象,以便将其传递给构造函数,

CommonsMultipartFile(org.apache.commons.fileupload.FileItem fileItem)
Run Code Online (Sandbox Code Playgroud)

为此,我尝试使用DiskFileItem构造函数创建FileItem对象,

DiskFileItem(java.lang.String fieldName, java.lang.String contentType, boolean isFormField, java.lang.String fileName, int sizeThreshold, java.io.File repository)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何传递任何这些参数.

我所有这些都在Spring 3 MVC控制器中工作,但是为了进行junit测试,我需要传递一个方法两个对象.一个是UploadItem对象,如下所示,

import org.springframework.web.multipart.commons.CommonsMultipartFile;

public class UploadItem {
 private String fileName;
 private String filePath;
 private CommonsMultipartFile fileData;

 public String getFileName() {
  return fileName;
 }

 public void setFileName(String fileName) {
  this.fileName = fileName;
 }

 public String getFilePath() {
  return filePath;
 }

 public void setFilePath(String filePath) {
  this.filePath = filePath;
 }

 public CommonsMultipartFile getFileData() {
  return fileData;
 }

 public void setFileData(CommonsMultipartFile fileData) { …
Run Code Online (Sandbox Code Playgroud)

spring file-upload spring-mvc apache-commons

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

如何使用Bash访问函数内的命令行参数?

我正在尝试在bash中编写一个函数来访问脚本命令行参数,但是它们被替换为函数的位置参数.如果函数没有显式传递,是否有任何方法可以访问命令行参数?

# Demo function
function stuff {
  echo $0 $*
}

# Echo's the name of the script, but no command line arguments
stuff

# Echo's everything I want, but trying to avoid
stuff $*
Run Code Online (Sandbox Code Playgroud)

bash argv command-line-arguments

89
推荐指数
5
解决办法
13万
查看次数

Java:角度移动球?

我已经开始学习游戏物理,我正试图以一个角度移动一个球.但它并没有改变它的角度.Java坐标系有点不同,我认为我的问题就在那里.这是我的代码.

这是用于计算x和y速度:

 scale_X= Math.sin(angle);
 scale_Y=Math.cos(angle);
     velosity_X=(speed*scale_X);
 velosity_Y=(speed*scale_Y);
Run Code Online (Sandbox Code Playgroud)

这是用于在run()函数中移动球:

  ball.posX =ball.posX+(int)velosity_X;
  ball.posY=ball.posY+(int)velosity_Y;
Run Code Online (Sandbox Code Playgroud)

我用过(int)velosity_X,(int)velosity_Y因为在ball课堂上画画对象

g.drawOval(posX, posX, width, height);
Run Code Online (Sandbox Code Playgroud)

这里g.drawOval要求int.我不知道这是不是一个问题.此外,如果我使用角度30它会变为+ X和+ Y但是如果我使用角度35它会变为-X和-Y.我没弄清楚如何在Java中使用坐标系.

java

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

如何在函数式编程语言中实现Rails类型webapp中的"模型"?

在MVC Web开发框架(如Ruby on Rails,Django和CakePHP)中,HTTP请求被路由到控制器,控制器获取通常持久存储到后端数据库存储的对象.这些对象代表用户,博客帖子等内容,并且通常在其方法中包含用于权限,获取和/或变异其他对象,验证等的逻辑.

这些框架都非常面向对象.我最近一直在阅读关于函数式编程的内容,它似乎带来了诸如可测试性,简洁性,模块性等巨大的好处.然而,我见过的函数式编程的大多数例子都实现了诸如quicksort或fibonnacci序列之类的琐碎功能,而不是复杂的webapps.我看了几个"功能"的Web框架,他们似乎都很好地实现了视图和控制器,但很大程度上跳过了整个"模型"和"持久性"部分.(我正在谈论更多像Compojure这样的框架,这些框架应该是纯粹的功能,而不是一些方便的似乎使用Scala的OO部分的模型 - 但如果我在这里错了,请纠正我.)

我还没有看到如何使用函数式编程来提供OO编程提供的隐喻,即表映射到对象,以及对象可以提供强大的封装逻辑(如权限和验证)的方法.此外,使用SQL查询来保存数据的整个概念似乎违反了整个"副作用"概念.有人可以解释如何在功能编程的Web框架中实现"模型"层吗?

model-view-controller functional-programming model ruby-on-rails clojure

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

NSPredicate相当于SQL的LIKE

我正在寻找一种方法NSPredicate来设置LIKE条件来获取对象.除此之外,一个OR也是有用的.我正在尝试做一些事情,如果用户搜索"詹姆斯"我可以写一个NSPredicate将做相当于:

select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
Run Code Online (Sandbox Code Playgroud)

iphone cocoa cocoa-touch core-data nspredicate

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

C++中的Malloc函数

我正在从C转换到C++.在C++中,malloc函数有用吗?或者我可以使用"new"关键字声明它.例如:

class Node
{
    ...
}
...
Node *node1 = malloc(sizeof(Node));        //malloc
Node *node2 = new Node;                    //new
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个?

c++ malloc new-operator

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

散列集中的重复元素

我目前有一个hashsets的问题.我有不可变的类,只包含一个项目,当我将两个不同的类添加到相同的数据到一个哈希集时,我在集合中得到它们.这很奇怪,因为我在基类和超类上都重载了Equals和GetHashCode.

public abstract class Contact :IEquatable<Contact>
{
    public readonly BigInteger Id;

    public Contact(BigInteger id) { this.Id = id; }

    public abstract bool Equals(Contact other);

    public abstract int GetHashCode();

    public abstract bool Equals(object obj);
}
Run Code Online (Sandbox Code Playgroud)

而继承类:

public class KeyOnlyContact :Contact, IEquatable<KeyOnlyContact>
{
    public KeyOnlyContact(BigInteger id) :base(id) { }

    public override bool Equals(object obj)
    {
        if (obj is KeyOnlyContact)
            return Equals(obj as KeyOnlyContact);
        else if (obj is Contact)
            return Equals(obj as Contact);
        else
            return (this as object).Equals(obj);
    }

    public override bool Equals(Contact …
Run Code Online (Sandbox Code Playgroud)

.net c# debugging hashset

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

具有自签名SSL证书问题的HTTPS ...解决方案还是更好的方法?

我需要做的就是从具有自签名SSL证书的Web服务器下载一些基于文本的基本文件和图像文件.

我一直试图弄清楚如何使用HttpClient来做到这一点,但让SSL工作是一场噩梦,这对于这么简单的任务来说似乎太麻烦了.

有没有更好的方法来执行这些文件下载?也许通过WebView或浏览器功能?重新制作一个简单的HTTPS GET请求是一个很大的痛苦,并且显着地阻碍了我的开发计划.

https android download self-signed

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

MySQL连接超时问题 - 使用Hibernate和ORM在Tomcat上的Grails应用程序

我在VPS上的Ubuntu上有一个运行在Tomcat上的小型grails应用程序.我使用MySql作为我的数据存储区,一切正常,除非我离开应用程序超过半天(8小时?).我做了一些搜索,显然这是wait_timeoutmysql.cnf中的默认值,所以8小时后连接会死,但Tomcat不会知道,当下一个用户试图查看该站点时,他们会看到连接失败错误.刷新页面将解决此问题,但我想完全摆脱错误.对于我的MySql版本(5.0.75),我只有my.cnf而且它不包含这样的参数.在任何情况下,更改此参数都无法解决问题.

这篇Blog Post似乎报告了一个类似的错误,但我仍然不完全理解我需要配置什么来解决这个问题,而且我希望有一个比另一个第三方库更简单的解决方案.我正在运行的机器有256MB内存,我正在努力使程序/服务的运行数量降到最低.

我可以在Grails/Tomcat/MySql中配置什么来让它消失吗?

提前致谢,

GAV

从我的Catalina.out;

2010-04-29 21:26:25,946 [http-8080-2] ERROR util.JDBCExceptionReporter  - The last packet successfully received from the server was 102,906,722 milliseconds$
2010-04-29 21:26:25,994 [http-8080-2] ERROR errors.GrailsExceptionResolver  - Broken pipe
java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
         ...
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter  - Already closed.
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter  - Already closed.
2010-04-29 21:26:26,017 [http-8080-2] ERROR servlet.GrailsDispatcherServlet  - HandlerInterceptor.afterCompletion threw exception
org.hibernate.exception.GenericJDBCException: Cannot release connection
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Already closed.
        at …
Run Code Online (Sandbox Code Playgroud)

mysql grails tomcat timeout

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