我试图在Ruby中动态创建局部变量使用eval
并改变局部变量数组.我在IRB这样做.
eval "t = 2"
local_variables # => [:_]
eval "t"
# => NameError: undefined local variable or method `t' for main:Object
local_variables << "t".to_sym # => [:_, :t]
t
# => NameError: undefined local variable or method `t' for main:Object
Run Code Online (Sandbox Code Playgroud) 命令"psql"应该抛出一个错误,我试图读取stderr并在Go程序中打印它.我使用ioutil.ReadAll从stderr和stdout读取数据.
不幸的是,它根本不是从stderr读取的.ioutil.ReadAll返回一个错误,这不是我期待的错误.
我得到的错误是
read |0: bad file descriptor
Run Code Online (Sandbox Code Playgroud)
这是代码.
package main
import (
"fmt"
"os/exec"
"io/ioutil"
)
func main() {
cmd := exec.Command("psql")
stdout, err := cmd.StdoutPipe()
if err != nil {
fmt.Printf("Error: %s", err)
}
stderr, err := cmd.StderrPipe()
if err != nil {
fmt.Printf("Error: %s", err)
}
err = cmd.Start()
if err != nil {
fmt.Printf("Start error %s",err)
}
d := cmd.Wait()
if d != nil {
fmt.Println(d)
}
stdo,g := ioutil.ReadAll(stdout)
stde,f := ioutil.ReadAll(stderr)
if g != …
Run Code Online (Sandbox Code Playgroud) 我在Go中编写了一个UDP服务器和客户端.我没有在服务器运行时看到任何错误消息port 1200
,当客户端尝试连接到同一台机器上的端口1200时,我也没有看到任何错误(OS X 10.9.1)
服务器没有在无限循环中打印"SOS ...",即客户端正在编写的消息.
客户端能够向服务器发送消息,但服务器正在读取的是0字节.
服务器代码
package main
import ( "net" "fmt" "time" )
func main() {
port := "127.0.0.1:1200"
udpAddress, err := net.ResolveUDPAddr("udp4",port)
if err != nil {
fmt.Println("error resolving UDP address on ", port)
fmt.Println(err)
return
}
conn ,err := net.ListenUDP("udp",udpAddress)
if err != nil {
fmt.Println("error listening on UDP port ", port)
fmt.Println(err)
return
}
defer conn.Close()
var buf []byte
for {
time.Sleep(100 * time.Millisecond)
n,address, err := conn.ReadFromUDP(buf)
if err != nil …
Run Code Online (Sandbox Code Playgroud) 当我在解释器中键入它时,调用'y'似乎调用了析构函数?
class SmartPhone:
def __del__(self):
print "destroyed"
y = SmartPhone()
y #prints destroyed, why is that?
y #object is still there
Run Code Online (Sandbox Code Playgroud)
这是一次运行,输出对我来说没有意义.
C:\Users\z4>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> class SmartPhone:
... def __del__(self):
... print "destroyed"
...
>>> y = SmartPhone()
>>> del y
destroyed
>>> y = SmartPhone()
>>> y
<__main__.SmartPhone instance at 0x01A7CBC0>
>>> y
<__main__.SmartPhone instance at …
Run Code Online (Sandbox Code Playgroud) 如何让Go评估$ PATH变量.我目前只打印"$ PATH"
我有以下代码
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
out, err := exec.Command("echo","$PATH").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n",out)
}
Run Code Online (Sandbox Code Playgroud) 以下2个代码片段(A和B)都返回2个字典的交集.
以下两个代码片段都应该在O(n)中运行并输出相同的结果.然而,pythonic的代码片段B似乎运行得更快. 这些代码片段来自Python Cookbook.
代码片段A:
def simpleway():
result = []
for k in to500.keys():
if evens.has_key(k):
result.append(k)
return result
Run Code Online (Sandbox Code Playgroud)
代码片段B:
def pythonicsimpleway():
return [k for k in to500 if k in evens]
Run Code Online (Sandbox Code Playgroud)
一些设置逻辑和用于计时两个函数的函数=>
to500 = {}
for i in range(500): to500[i] = 1
evens = {}
for i in range(0,1000,2): evens[i] = 1
def timeo(fun, n=1000):
def void(): pass
start = time.clock()
for i in range(n): void()
stend = time.clock()
overhead = stend - start
start = time.clock()
for i …
Run Code Online (Sandbox Code Playgroud) 嗨,我有一个查询,其中表达式将在大多数情况下被评估两次.我只想评估一次.我想分配
CAST(ROUND(VOLUME - ((CAPACITY*1.0)/TIMEFRAME)*(STRFTIME('%s','now') - UPDATED_TIMESTAMP)) AS INT)
Run Code Online (Sandbox Code Playgroud)
变量,因此它不会被评估两次.我怎么能在一个SQL查询中执行此操作?
SELECT CASE
WHEN CAST(ROUND(VOLUME - ((CAPACITY*1.0)/TIMEFRAME)*(STRFTIME('%s','now') - UPDATED_TIMESTAMP)) AS INT) > 0 THEN CAST(ROUND(VOLUME - ((CAPACITY*1.0)/TIMEFRAME)*(STRFTIME('%s','now') - UPDATED_TIMESTAMP)) AS INT)
ELSE 0
END
FROM BUCKETS;
Run Code Online (Sandbox Code Playgroud)