任何人都可以解释一下:
我想将一些大文件从我的macbook复制到本地USB磁盘
我可以通过两种方式做到这一点:
1)cd到我的macbook上的目录然后复制,如下所示:
$ cd ~/Downloads
$ cp file /Volume/usb/...
Run Code Online (Sandbox Code Playgroud)
要么
2)cd到我的USB磁盘上的目标目录,然后从macbook目录复制,如下所示:
$ cd /Volume/usb
$ cp ~/Downloads/file .
Run Code Online (Sandbox Code Playgroud)
我偶然发现方法2大约比方法1快4倍 - 任何想法都是这种情况.这总是正确的还是仅仅是OS-X的一个功能.这对我来说似乎很奇怪.我已经多次重复了这个实验 - 然后cd到USB并复制到它上要快得多.
OS = El Capitan - 本地磁盘是SSD - 远程磁盘是USB磁盘.
我希望emacs lisp代码将一些数据附加到emacs的日志文件中.日志文件很大,所以我不想把它读入内存.
我只需要打开日志文件,将一些数据附加到它,关闭它.我永远不需要查看或手动编辑内容.
我正在尝试在NSWindow中创建一个可编辑的文本区域.到目前为止,我可以创建一个窗口并添加一个文本字段 - 但是当我选择它并输入字符时,字符会在shell中而不是文本区域中回显.
注意:这不是Xcode项目 - 我试图在shell中的单个文件中执行此操作 - 我的目标是仅在代码中执行此操作
要复制错误,请将以下代码放入文件(experiment.swift)并提供shell命令
> swift experiment.swift
Run Code Online (Sandbox Code Playgroud)
这是代码
import Cocoa
class MyAppDelegate: NSObject, NSApplicationDelegate {
let window = NSWindow()
let ed = NSTextField(frame: NSMakeRect(20, 10, 180, 160))
func applicationDidFinishLaunching(aNotification: NSNotification) {
window.setContentSize(NSSize(width:600, height:200))
window.styleMask = NSTitledWindowMask | NSClosableWindowMask |
NSMiniaturizableWindowMask |
NSResizableWindowMask
window.opaque = false
window.center();
window.title = "My window"
ed.font = NSFont(name:"Helvetica Bold", size:20)
ed.stringValue = "edit me"
ed.editable = true
ed.selectable = true
window.contentView!.addSubview(ed)
window.makeKeyAndOrderFront(window)
window.level = 1
}
func applicationWillTerminate(aNotification: NSNotification) { …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一些C代码转换为swift.(为什么? - 如果你问的话,在OS-X中使用CoreMIDI)
C代码是这样的
void printPacketInfo(const MIDIPacket* packet) {
int i;
for (i=0; i<packet->length; i++) {
printf("%d ", packet->data[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
而MIDIPacket的定义是这样的
struct MIDIPacket
{
MIDITimeStamp timeStamp;
UInt16 length;
Byte data[256];
};
Run Code Online (Sandbox Code Playgroud)
我的斯威夫特是这样的
func printPacketInfo(packet: UnsafeMutablePointer<MIDIPacket>){
// print some things
print("length", packet.memory.length)
print("time", packet.memory.timeStamp)
print("data[0]", packet.memory.data.1)
for i in 0 ..< packet.memory.length {
print("data", i, packet.memory.data[i])
}
}
Run Code Online (Sandbox Code Playgroud)
但这会产生编译错误
错误:类型'(UInt8,UInt8,..剪切.. UInt8,UInt8,UInt8)'没有下标成员
那么如何取消引用固定大小数组的第i个元素呢?
这里发生了一些奇怪的事情.我创建了一个音频缓冲区,将其存储在变量中并尝试重复使用它几次 - 但它似乎已损坏
我做了一些按钮
<button onclick="play();">play(0)</button>
<button onclick="playsection();">play section</button>
<button onclick="stop();">stop()</button>
Run Code Online (Sandbox Code Playgroud)
获取一些音频数据
context = new AudioContext();
var getWav = new XMLHttpRequest();
var wavbuf;
getWav.open("GET", "/wav/test.wav", true);
getWav.responseType = "arraybuffer";
getWav.onload = function() {
context.decodeAudioData(getWav.response, function(buffer){
wavbuf = buffer;
});
}
getWav.send();
var p;
Run Code Online (Sandbox Code Playgroud)
我可以多次评估play()而不会出错
function play(){
p = context.createBufferSource();
p.buffer = wavbuf;
p.connect(context.destination);
p.start(0);
}
Run Code Online (Sandbox Code Playgroud)
如果我在 停止(10)评估之前按下停止,则playsection似乎只能工作一次 - 或偶尔不止一次
function playsection(){
p = context.createBufferSource();
p.buffer = wavbuf;
p.connect(context.destination);
p.start(0, 6); // start after 6 seconds …
Run Code Online (Sandbox Code Playgroud) 任何想法为什么这不起作用.
单击时按是按钮可以使用一次 - 否按钮不起作用
function $(x) {
return document.getElementById(x);
}
var glob = 0;
function new_index() {
glob += 1;
return "d" + glob;
}
function play() {
say("Hello is JS Fun?");
response("No",
function() {
say("Oh dear")
});
response("Yes",
function() {
say("Great:");
});
}
function say(x) {
$("txt").innerHTML += x;
}
function response(Txt, Fun) {
var n = new_index();
var s = "<button id='" + n + "'>" + Txt + "</button>";
say(s);
var xx = $(n);
// xx.onclick=Fun;
xx.addEventListener("click", …
Run Code Online (Sandbox Code Playgroud)