以下是Kishori Sharan的Learn JavaFX 8书中的一个例子:
package sample;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.beans.value.WeakChangeListener;
public class WeakListener {
public static IntegerProperty counter = new SimpleIntegerProperty(100);
public static WeakChangeListener<Number> weakListener;
public static ChangeListener<Number> changeListener;
public static void main(String[] args) {
// Add a weak change listener to the property
addWeakListener();
counter.set(300);
System.gc();
System.out.println("Garbage collected: " +
weakListener.wasGarbageCollected());
counter.set(400);
changeListener = null;
System.gc();
System.out.println("Garbage collected: " +
weakListener.wasGarbageCollected());
counter.set(500);
}
public static void addWeakListener() {
changeListener = WeakListener::changed;
weakListener = …Run Code Online (Sandbox Code Playgroud) 以下是Pro JavaFx 8的示例:
package projavafx.reversi.examples;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.InnerShadow;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.Ellipse;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import projavafx.reversi.model.Owner;
import projavafx.reversi.model.ReversiModel;
/**
* @author Stephen Chin <steveonjava@gmail.com>
*/
public class BorderLayoutExample extends Application {
TilePane scoreTiles;
TilePane titleTiles;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
BorderPane borderPane = new BorderPane();
borderPane.setTop(createTitle()); …Run Code Online (Sandbox Code Playgroud) 我知道一个函数可以接受的类型的ARG => A作为
def add1(x: => Int): Int = {
x + 1
}
Run Code Online (Sandbox Code Playgroud)
但是如何在函数中返回这样的类型呢?
以下是Scala中函数式编程的一些代码:
import State._
case class State[S, +A](run: S => (A, S)) {
def map[B](f: A => B): State[S, B] =
flatMap(a => unit(f(a)))
def map2[B, C](sb: State[S, B])(f: (A, B) => C): State[S, C] =
flatMap(a => sb.map(b => f(a, b)))
def flatMap[B](f: A => State[S, B]): State[S, B] = State(s => {
val (a, s1) = run(s)
f(a).run(s1)
})
}
object State {
type Rand[A] = State[RNG, A]
def unit[S, A](a: A): State[S, A] =
State(s => (a, s)) …Run Code Online (Sandbox Code Playgroud) 如何在intellij中折叠任意代码块?
我知道有cmd+。快捷方式,但仅当选择在一行内时才有效。
复制自如何在 swift 脚本中运行终端命令?(例如xcodebuild):
import Foundation
@discardableResult
func shell(_ args: String...) -> Int32 {
let task = Process()
task.launchPath = "/usr/bin/env"
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
shell("ls")
shell("xcodebuild", "-workspace", "myApp.xcworkspace")
Run Code Online (Sandbox Code Playgroud)
这看起来很整洁。我只是想知道如何$PWD为进程设置环境变量(task在此处命名...)。
我尝试了以下方法:
import Foundation
@discardableResult
func execCommand(_ args: String...) -> Int32 {
let process = Process()
process.launchPath = "/usr/bin/env"
process.environment = ["PWD": "/Users"]
if let env = process.environment {
print(env["PWD"] ?? "Unknown")
} else {
print("Environment not available!")
}
process.arguments = args …Run Code Online (Sandbox Code Playgroud) 假设我有四种情况的四种功能:
void ac() {
//do something
}
void ad() {
//do something
}
void bc() {
//do something
}
void bd() {
//do something
}
void f(bool a, bool b, bool c, bool d) {
if(a and c) {
ac();
}
else if(a and d) {
ad();
}
else if(b and c) {
bc();
}
else if(b and d){
bd();
}
else {
throw 1;
}
}
Run Code Online (Sandbox Code Playgroud)
对于2比2的情况,这很简单,但在更复杂的情况下,这可能会变得非常繁琐.有没有办法简化这个?
假设我想生成这样的一维数组:
1 1 1 1 2 2 2 3 3 4
Run Code Online (Sandbox Code Playgroud)
一般来说,我正在寻找这种形式的东西:
Element N-repetition
1 n-0
2 n-1
3 n-2
4 n-3
. .
. .
. .
n n-(n-1)=1
Run Code Online (Sandbox Code Playgroud)
这当然可以通过组合大小为n,n-1,n-2,...的数组来实现,但我想知道是否有更好的矢量化方法来做到这一点?
这个医生过时了吗?http://www.scala-js.org/doc/calling-javascript.html 似乎无法在intellij中做到这一点:
import org.scalajs.dom.html
import org.scalajs.dom
import org.scalajs.dom.raw.HTMLElement
import scala.scalajs.js
import js.JSConverters._
import fr.iscpif.scaladget.d3._
import fr.iscpif.scaladget.mapping._
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import org.scalajs.jquery.jQuery
/**
* Created by IDEA on 31/10/15.
*/
@JSExport
object LearnD3 {
@JSExport
def main(div: html.Div): Unit = {
jQuery("#list > li").each((x, y) => y)
}
}
Run Code Online (Sandbox Code Playgroud)
第一个dom.HTMLElement似乎不存在.有org.scalajs.dom.raw.HTMLElement,但即使我导入,有一个类型不匹配: