小编ppo*_*one的帖子

如何在Ruby中动态创建局部变量?

我试图在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)

ruby irb

9
推荐指数
3
解决办法
3761
查看次数

为什么我使用stderr和ioutil.ReadAll在这个Go程序中获得"错误的文件描述符"

命令"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)

stdout go stderr

7
推荐指数
1
解决办法
5345
查看次数

Go中的UDP服务器/客户端不读取数据

我在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)

udp go

6
推荐指数
1
解决办法
5419
查看次数

为什么要调用python析构函数?

当我在解释器中键入它时,调用'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)

python

5
推荐指数
2
解决办法
709
查看次数

如何使用Go的os/exec评估环境变量

如何让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)

go

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

Python(2.7):为什么以下两个代码片段之间存在性能差异,这两个代码片段实现了两个字典的交集

以下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)

python performance python-2.7

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

如何使用vi中的字符编号搜索特殊字符?

我希望能够通过使用字符的十进制或十六进制数来查找或替换vi中的字符.比如字符92.

这可能吗?

vi vim hex

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

带有变量的SQLITE Case Expression避免对表达式进行双重评估

嗨,我有一个查询,其中表达式将在大多数情况下被评估两次.我只想评估一次.我想分配

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)

sql database sqlite

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

标签 统计

go ×3

python ×2

database ×1

hex ×1

irb ×1

performance ×1

python-2.7 ×1

ruby ×1

sql ×1

sqlite ×1

stderr ×1

stdout ×1

udp ×1

vi ×1

vim ×1