Да Вы можете. Создайте каталог, поскольку нормальный тогда просто устанавливает атрибуты на нем. Например,
DirectoryInfo di = new DirectoryInfo(@"C:\SomeDirectory");
//See if directory has hidden flag, if not, make hidden
if ((di.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
{
//Add Hidden flag
di.Attributes |= FileAttributes.Hidden;
}
Я подумал еще о том, как реализовать это с помощью структуры
. Вот что я придумал:
type MyString struct {
val string;
}
func f(s MyString) {
if s == nil {
s = MyString{"some default"};
}
//do something with s.val
}
Тогда вы можете позвонить f
так:
f(nil);
f(MyString{"not a default"});
На самом деле нет ответа: но значение деформации в структуре может обеспечить некоторый общий метод полезности. ( Haskell Maybe ?)
//#maybe.go
package maybe
import "log"
type MayHaveValue struct {
IsValue bool;
}
func (this MayHaveValue) IsJust() bool {
return this.IsValue
}
type AString struct {
MayHaveValue;
Value string;
}
func String(aString string) AString {
return AString{MayHaveValue{true}, aString}
}
var NoString AString = AString{MayHaveValue{false}, ""}
func (this AString) String() (value string) {
if this.IsJust() == true {
value = this.Value;
} else {
log.Crash("Access to non existent maybeString value");
}
return;
}
func (this AString) OrDefault(defaultString string) (value string) {
if this.IsJust() {
value = this.Value;
} else {
value = defaultString;
}
return;
}
//#main.go
package main
import "fmt"
import "maybe"
func say(canBeString maybe.AString) {
if canBeString.IsJust() {
fmt.Printf("Say : %v\n", canBeString.String());
} else {
fmt.Print("Nothing to say !\n");
}
}
func sayMaybeNothing (canBeString maybe.AString) {
fmt.Printf("Say : %v\n", canBeString.OrDefault("nothing"));
}
func main() {
aString := maybe.String("hello");
say(aString);
sayMaybeNothing(aString);
noString := maybe.NoString;
say(noString);
sayMaybeNothing(noString);
}
Свободный Java-Drught и просто пройти f (""). Затем проверьте, используя LEN ():
FUNC F (Str String) { Если len (str)> 0 { ... } еще { ... } }
Либо строка пуста и имеет семантическое значение вашего корпуса NIL, либо иначе имеет несколько строковых данных для обработки. Не могу видеть проблему с этим.