小编Mar*_*ace的帖子

参数和接收器之间有什么区别

我正在关注Go教程,因为我无法理解特定的方法签名而陷入困境:

func (p *Page) save() error {
    filename := p.Title + ".txt"
    return ioutil.WriteFile(filename, p.Body, 0600)
}
Run Code Online (Sandbox Code Playgroud)

文档解释如下:

此方法的签名读取:"这是一个名为save的方法,它将接收器p作为指向Page的指针.它不带参数,并返回类型错误的值."

我无法理解接收器是什么.我会读这个,因为它是一个参数,但后来我希望有一个参数save().

go

13
推荐指数
2
解决办法
3175
查看次数

抽象类和接口在一起?

我有一段代码,其中一些类正在实现一个接口.

这感觉是正确的,但是在儿童班中有一点重复 - 即3种方法.

所以这是尖叫着使用抽象类.

我的问题是,在以下情况下使用抽象类和接口是否有任何缺点:

  1. 抽象类实现接口和子类来扩展抽象类
  2. 子类扩展抽象类并实现接口

要么

抽象类和接口是否应该像这样一起使用?

php java abstract-class design-patterns interface

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

gitignore目录异常无法正常工作

我有以下文件夹结构:

public
    media
        catalog
            product
            category
        private
        tmp
        var
        test
Run Code Online (Sandbox Code Playgroud)

我想gitignore media目录中的所有内容除了catalog/categoryprivate

我正在尝试的gitignore是:

public/media/*
!public/media/catalog/category/
!public/media/private
Run Code Online (Sandbox Code Playgroud)

但它不起作用.添加到categoryprivate目录的任何新文件都无法添加.

我可以git添加力量,但如果可能的话,我希望通过gitignore完成

git gitignore

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

在第二个元素的关联数组上启动foreach循环

我有关联数组,如:

$myArray = array(
  'key1' => 'val 1',
  'key2' => 'val 2'
  ...
);
Run Code Online (Sandbox Code Playgroud)

我不知道前面的键值,但想从第二个元素开始循环.在上面的示例中,这将是从key2开始.

我试过了

foreach(next(myArray) as $el) {

}
Run Code Online (Sandbox Code Playgroud)

但那没用.

替代品可能array_slice但是看起来很混乱.我错过了一些明显的东西吗

php

11
推荐指数
3
解决办法
2万
查看次数

ActionController :: UrlGenerationError缺少必需的键:[:id]

我是ruby的新手 - 尝试使用rails并且我已经试图做一个简单的注册表单了:

<%= form_for :user, url: user_path do |f| %>
    <p>
      <%= f.label :email %><br>
      <%= f.text_field :email %>
    </p>

    <p>
      <%= f.label :password %><br>
      <%= f.password_field :password %>
    </p>

    <p>
      <%= f.submit %>
    </p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是一个错误:

No route matches {:action=>"show", :controller=>"user"} missing required keys: [:id]
Run Code Online (Sandbox Code Playgroud)

任何人都能解释这实际意味着什么?

编辑:

我正在关注本教程,只是将帖子更改为用户:http://guides.rubyonrails.org/getting_started.html

ruby ruby-on-rails

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

Chef正确加载新rpm和安装包的方法

我正在尝试在centos盒子上安装最新版本的php并且正在努力.

我一直在看的食谱是opscode:https://github.com/opscode-cookbooks/php

它看起来不像我可以使用它安装PHP 5.5.

要手动安装,我只需执行以下操作(在centos 6.4上):

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php55w php55w-opcache
Run Code Online (Sandbox Code Playgroud)

这如何转化为使用chef(solo)来安装php 5.5?

sysadmin provisioning chef-infra vagrant chef-solo

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

php确定变量是否是一个打开的文件句柄

我目前正在使用is_resource()来确定变量是否是一个打开的文件句柄.

这是正确的还是有另一种(更好的)方法来做到这一点?

php

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

坏OOP有很多只有1或2种方法的类

这是一个糟糕的设计标志,你有很多只有1或2种方法的课程吗?

我正在尝试学习OOP设计并创建了一个小应用程序(微小的).

它最终有很多类实现只包含1或2个方法的接口.

它感觉分离得很好但是这些类的方法很少看起来很糟糕.

我知道每个场景都会有所不同,但从一般的角度来看这是不是很糟糕?

应用程序的一小部分确定喂狗的时间表(我知道跛脚):

所以我试着在这里实施策略模式:

class DogFeedController
{
    protected $strategy = null;

    public function __construct(iDogFeedStrategy $strategy) {
        $this->strategy = $strategy;
    }

    public function getFeedingSchedule() {
        $morningFeeds = $this->strategy->generateMorningFeeds();
        $eveningFeeds = $this->strategy->generateEveningFeeds();       
    }

}


class GeneralFeedStrategy implements iDogFeedStrategy
{
    public function generateMorningFeeds() {
        //do stuff here
    }

    public function generateEveningFeeds() {
        //do stuff here
    }
}
Run Code Online (Sandbox Code Playgroud)

oop design-patterns

8
推荐指数
2
解决办法
2546
查看次数

ini文件中的嵌套数组

我试图在ini设置文件中有一个嵌套的数组结构.我的结构是:

stuct1[123][a] = "1"
stuct1[123][b] = "2"
stuct1[123][c] = "3"
stuct1[123][d] = "4"
Run Code Online (Sandbox Code Playgroud)

但这不起作用.任何人都可以解释这种结构是否可行parse_ini_file

如果有可能,我做错了什么?

php

8
推荐指数
3
解决办法
2万
查看次数

工厂模式是否应包含验证逻辑

在使用工厂模式时,工厂应该包含验证逻辑还是应该留给调用类来处理传递上下文数据之前的验证?

我有一个简单的工厂方法,但它依赖于传递给它的配置树来决定要实例化的对象.

可能存在这样的情况:配置xml可能形成良好,但不是工厂期望的正确格式,我不知道应该在哪里验证.

java design-patterns factory

8
推荐指数
2
解决办法
2021
查看次数