我正在学习Ruby,学习Berkeley的MOOC,而且在其中一些MOOC的作业中我们有一个练习:
定义方法sum_to_n?它接受一个整数数组和一个额外的整数n作为参数,如果整数数组中的任何两个元素总和为n,则返回true.根据定义,空数组应总和为零.
我已经创建了两种可以完成这项工作的方法,但是我对它们中的任何一种都不满意,因为我认为它们不是用Ruby方式编写的.我希望你们中的一些人可以帮助我学习哪种方法是正确的!
我制作的第一个方法each在两次迭代中都使用了这个方法,但我不喜欢这个方法的是每个数字都与其他数字相加,即使数字相同,也可以这样做:
arr[1, 2, 3, 4] => 1+1, 1+2, 1+3, 1+4, 2+1, 2+2, 2+3, 2+4, 3+1, 3+2... 4+3, 4+4
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,有很多重复的总和,我不希望这样.
这是代码:
def sum_to_n?(arr, n)
arr.each {|x| arr.each {|y| return true if x + y == n && x != y}}
return true if n == 0 && arr.length == 0
return false
end
Run Code Online (Sandbox Code Playgroud)
用另一种方法,我得到了我想要的东西,只是几笔钱而不重复任何一个,甚至总结相同的数字,但它看起来很可怕,而且我很确定有人会因为这样做而杀了我,但是你可以看到这个方法做得很好:
arr[1, 2, 3, 4] => 1+2, 1+3, 1+4, 2+3, 2+4, 3+4
Run Code Online (Sandbox Code Playgroud)
这是代码:
def sum_to_n?(arr, n)
for i in 0..arr.length - 1
k …Run Code Online (Sandbox Code Playgroud) 我正在使用JavaFX为其用户界面开发Java应用程序.
当我使用FileChooser类从Os X Mavericks中的计算机硬盘驱动器加载CSV文件时,对话框会显示所有文件和文件夹,甚至隐藏的文件和文件夹会产生很多噪音,并且很难找到所需的文件.
这个截图说明了我在说什么:

我认为这可能更像是一个OS X问题,但我不明白如何解决,至少我不明白如何用JavaFX FileChooser类修复它.
这是我的代码:
Stage stage = new Stage();
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open File");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("Comma-Separated Values (CSV)", "*.csv")
);
fileChooser.setInitialDirectory(
new File(System.getProperty("user.home"))
);
File selectedFile = fileChooser.showOpenDialog(stage);
Run Code Online (Sandbox Code Playgroud)
更新
这是用于打开文件的Google Chrome模式.

我正在尝试使用 JavaFX 在登录窗口(舞台)内创建一个精灵动画,一旦用户获得登录和密码信息,就会播放该动画。我尝试使用 Michael Heinrichs 在他关于使用 JavaFX 精灵动画的博客文章中发布的类,但我无法让它工作,主要是因为我不明白如何在不使用 start 方法的情况下在 ImageView 中创建这个动画(在我的情况下也不起作用)。
这是我在登录阶段的 FXML 文件中的代码:
<GridPane alignment="CENTER" hgap="10.0" vgap="10.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="crud.controller.MainController">
<padding>
<Insets bottom="25.0" left="25.0" right="25.0" top="25.0" />
</padding>
<children>
<ImageView fx:id="loginAnimationImageView" GridPane.columnIndex="0" GridPane.halignment="CENTER" GridPane.columnSpan="2" GridPane.rowIndex="0">
<image>
<Image url="@../assets/shop-sprite.png" />
</image>
<viewport>
<Rectangle2D height="130.0" width="131.0" />
</viewport>
</ImageView>
<Label text="Usuario" GridPane.columnIndex="0" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="loginTextField" onAction="#onEnterTextFieldAction" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="Contraseña" GridPane.columnIndex="0" GridPane.rowIndex="3" />
<PasswordField fx:id="passwordTextField" onAction="#onEnterPasswordFieldAction" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Button fx:id="loginButton" onAction="#loginButtonAction" text="Ingresar" …Run Code Online (Sandbox Code Playgroud) 我试图为NSTextField对象实现一个委托,这样我就可以实时检测用户输入并给出一些关于该特定字段中没有允许输入的反馈.特别是,我想onChange()从JavaScript 模拟该方法,实时检测用户输入,并在写入不受支持的值时向他显示警告.
即应用程序有一个文本字段,它只接受0到255之间的数值(如RGB值),我想知道用户何时写入不是数值或超出范围值,以立即显示警告消息或更改文本现场背景颜色,只是一个视觉提示让他知道输入它是错误的.

就像你在上面的图片上看到的那样,每次用户在文本字段中输入禁止值时,我都想显示一个警告标志.
我一直在阅读了很多的苹果的文档,但我不明白,要实现哪些委托(NSTextFieldDelegate,NSTextDelegate,或NSTextViewDelegate),还有,我不知道如何实现它在我的AppDelegate.m文件,且该方法的使用,以及如何获得通知用户编辑.
现在,我已经在我的init方法中使用类似的东西设置了委托,[self.textField setDelegate:self];但我不明白如何使用它或者实现哪种方法.
java ×2
macos ×2
animation ×1
arrays ×1
javafx ×1
javafx-2 ×1
loops ×1
nstextfield ×1
objective-c ×1
ruby ×1