小编Sam*_*Sam的帖子

在文件范围内可变修改的数组

我想创建一个在我的Objective-C实现文件中使用的常量静态数组,类似于我的".m"文件的顶层.

static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = { 
  1,
  2, 
  3, 
  4 };
Run Code Online (Sandbox Code Playgroud)

我打算NUM_TYPES稍后在文件中使用,所以我想把它放在一个变量中.

但是,当我这样做时,我得到了错误

"在文件范围内修改了'类型'"

我认为这可能与数组大小是变量有关(当我在那里放一个整数文字时,我不会收到此消息static int types[4]).

我想解决这个问题,但也许我说这一切都错了......我在这里有两个目标:

  1. 拥有一个可在整个文件中访问的数组
  2. 要封装NUM_TYPES到变量中,所以我的文件中的不同位置没有相同的文字

有什么建议?

[编辑]在C Faq中找到了这个:http://c-faq.com/ansi/constasconst.html

c arrays static const objective-c

81
推荐指数
5
解决办法
11万
查看次数

如何在Haskell中实现`cat`?

我想cat在Haskell中编写一个简单的程序.我想将多个文件名作为参数,并将每个文件顺序写入STDOUT,但我的程序只打印一个文件并退出.

我需要做什么才能让我的代码打印每个文件,而不仅仅是传入的第一个文件?

import Control.Monad as Monad
import System.Exit
import System.IO as IO
import System.Environment as Env

main :: IO ()
main = do
    -- Get the command line arguments
    args <- Env.getArgs

    -- If we have arguments, read them as files and output them
    if (length args > 0) then catFileArray args

    -- Otherwise, output stdin to stdout
    else catHandle stdin

catFileArray :: [FilePath] -> IO ()
catFileArray files = do
    putStrLn $ "==> Number of …
Run Code Online (Sandbox Code Playgroud)

haskell conduit

13
推荐指数
4
解决办法
2394
查看次数

在Apache httpd进程,基于PHP/Doctrine的应用程序中查找内存泄漏

我有一个使用这些组件的PHP应用程序:

  • Centos 5.4上的Apache 2.2.3-31
  • PHP 5.2.10
  • Xdebug 2.0.5启用了远程调试
  • APC 3.0.19
  • PHP 1.2.1的Doctrine ORM使用查询缓存和通过APC的结果缓存
  • MySQL 5.0.77使用查询缓存

我注意到,当我启动Apache时,我最终得到了10个子进程.随着时间的推移,每个进程将在内存中增长,直到每个进程接近10%的可用内存,这开始使服务器慢慢爬行,因为它们一起增长占用了100%的内存.

这是我的最高输出的快照:

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1471 apache    16   0  626m 201m  18m S  0.0 10.2   1:11.02 httpd                                                                                                                                                          
 1470 apache    16   0  622m 198m  18m S  0.0 10.1   1:14.49 httpd                                                                                                                                                          
 1469 apache    16   0  619m 197m  18m S  0.0 10.0   1:11.98 httpd                                                                                                                                                          
 1462 apache    18   0  622m 197m  18m S  0.0 10.0   1:11.27 httpd                                                                                                                                                          
 1460 apache    15 …
Run Code Online (Sandbox Code Playgroud)

php apache memory-leaks apc

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

5种在Java中使用static关键字的方法

我刚刚接受了一次采访,其中一个问题类似于"描述在Java中使用静态关键字的5种方法".我当场只能想到2,之后又发现了2个.什么是第五?

  1. 声明属于类的字段而不是类的实例.
  2. 声明可以在类而不是实例上调用的方法.
  3. 将嵌套类声明为static
  4. 定义静态类初始化程序.
  5. ???

java static keyword

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

为什么这个闭包范围的变量会失去它的价值?

我在这里看到了这个Javascript测验:http://www.netfxharmonics.com/2008/01/NetFX-Harmonics-JavaScript-Quiz

我无法弄清楚这个问题:

(function(){
    var a = 1;
    var b = 2;

    (function( ) { a = b; var b; })( );

    console.log('a:'+ a);  // => "a:undefined"
    console.log('b:'+ b);  // => "b:2"
})()
Run Code Online (Sandbox Code Playgroud)

但是,如果var b;从内部函数中删除声明,那么a == 2正如您所期望的那样.

为什么会这样?

(你可以在这里玩它:http://jsfiddle.net/gnhMZ/)

javascript closures

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

IE8中的Object.toString问题,backbone.js

什么是IE8和toString对象的方法?

我试图toString在我的Backbone.js模型中覆盖,但IE8似乎没有认识到该方法是存在的.将方法名称更改为其他名称可以正常工作,但为什么我不能使用toString?这适用于Chrome.

var Foo = Backbone.Model.extend({
    toString: function(){ return this.get("name"); },
    description: function(){ return this.get("name"); }
});

var f = new Foo({name: "a foo"});

document.writeln(f.toString());    // "[object Object]", should be "a foo"
document.writeln("<br/>");
document.writeln(f.description()); // "a foo"
Run Code Online (Sandbox Code Playgroud)

JSFiddle代码:http://jsfiddle.net/x96mR/3/

javascript internet-explorer-8 backbone.js

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

如何使用管道在Go中编写`cat`

我在cat下面有一个Unix工具的实现.它从os.Stdin缓冲区中读取多个字节,然后将这些字节写入os.Stdout.有没有办法可以跳过缓冲区Stdin直接管道Stdout

package main

import "os"
import "io"

func main() {
    buf := make([]byte, 1024)

    var n int
    var err error
    for err != io.EOF {
        n, err = os.Stdin.Read(buf)

        if n > 0 {
            os.Stdout.Write(buf[0:n])
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

unix go

6
推荐指数
2
解决办法
1758
查看次数

重用UIViewController用于模态和非模态情况

我有一个UIViewController - 我们称之为"FormController" - 它只是一个编辑对象的表单.我想在两种不同的情况下使用它:

  1. 创建一个新对象 - 使用UINavigationController的presentModalViewController:方法.

  2. 编辑现有对象 - 将视图控制器推送到UINavigationController堆栈,而不是使用对话框方法.

在模态情况下,我希望有一个带有"取消"和"完成"按钮的工具栏,但在堆栈情况下,我想要只有UINavigationController提供的导航栏.

这类似于Contacts应用程序,其中"New Contact"和"Edit Contact"屏幕似乎使用相同的视图控制器,但New Contact表单以模态方式呈现,而Edit屏幕被推送到导航堆栈.

我的问题是:在不必编写2个独立但大部分相同的视图控制器的情况下,处理这两种情况的最佳方法是什么?

我想创建一个"ModalFormController",通过组合封装裸"FormController"并添加一个工具栏,但我在文档中的某处读到Apple不建议嵌套视图控制器.

iphone cocoa-touch uiviewcontroller uinavigationcontroller ios

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

具有WAI的斐波纳契网络服务

我正在尝试使用WAI编写一个简单的Fibonacci Web服务器,但我无法弄清楚类型.这段代码是我想要做的事情的本质,但它已经破碎了.该getQueryArg函数返回一个Maybe ByteString,我想在我的fibHandler函数中使用它.

  1. 我如何正确处理Maybe我的fibHandler
  2. 如何在Maybe上调用putStrLn?我正在努力,fmap但我似乎无法做到正确.

 

{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.HTTP.Types
import Network.Wai.Handler.Warp (run)
import Data.ByteString.Lazy.Char8 ()  -- Just for an orphan instance
import Control.Monad.IO.Class (liftIO)
import Data.Conduit
import Data.String.Utils
import Data.ByteString as BS (ByteString, putStrLn)
import Data.ByteString.Char8 as B (unpack)
import Data.Text as T (intercalate, pack, unpack)

app :: Application
app req
    | rawPathInfo req == "/fib" = fibHandler req
    | otherwise = notFoundHandler …
Run Code Online (Sandbox Code Playgroud)

haskell http haskell-wai

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