automatische Einfärbung von Funktionsnamen

  • Wenn ich eine Funktion definiere und später benutze, wird der Funktionsname normalerweise schwarz gefärbt. Aber gelegentlich ist die Funktionsfarbe blau, sowohl in ihrer Definition als auch wenn ich sie später verwende. Die blauen Funktionen funktionieren wie erwartet. Ich kann keinen Unterschied darin finden, wie ich sie definiere, oder irgendein Muster. Was bedeutet die blaue Farbe?

    17 December 2012
    Szabolcs
2 answers
  • Der Farbunterschied hängt davon ab, ob es sich um ein erkanntes Symbol handelt oder nicht: Schwarz bedeutet, dass es erkannt wird, Blau bedeutet, dass dies nicht der Fall ist. Damit ein Symbol erkannt werden kann, muss es in den Kernel eingegeben worden sein, d. H. Es muss in einer ausgeführten Zelle enthalten sein. Ich hatte in der Vergangenheit Probleme beim Beenden und Neustarten des Kernels, bei dem der Highlighter nicht wieder funktioniert, sodass jedes benutzerdefinierte Symbol unabhängig von seinem Status blau ist. Aber ich glaube nicht, dass ich in Version 7 sehr oft darauf gestoßen bin. es war eher ein v.6 problem. (Ich habe gerade mit Version 8 angefangen, habe also keine Erfahrung damit.)

    22 November 2011
    rcollyer
  • Ich erinnere mich, dass ich von Anfang an verwirrt war. Schwarz bedeutet, dass es sich entweder um einen Befehl oder eine Variable handelt, die Informationen enthält. Blau bedeutet, dass sie überhaupt nicht erkannt werden. Versuchen Sie Folgendes:

     testVariable="5"
     

    Wenn Sie es ausführen, wechselt testVariable von blau zu schwarz. Wenn Sie jetzt codieren und testVariable aufrufen müssen, wird es als schwarz angezeigt. Wenn Sie es falsch schreiben, als Testvariable, würde es als blau erscheinen. d. h. Print[testVariable] führt als Ausgabe zu 5. Ein guter schneller Weg, um zu sehen, was los ist.

    Versuchen Sie nun Folgendes (Hinweis: Alle derzeit definierten Variablen werden gelöscht!):

     Clear["Global`*"]
     

    Beachten Sie, dass testVariable dynamisch wieder blau wird. Es enthält nichts mehr und Sie könnten es nicht in Ihren anderen Befehlen verwenden. Wenn Sie Print[testVariable] erneut ausführen, ohne Ihre vorherigen Befehle auszuführen, würde dies nicht 5 (sondern nur 'testVariable') drucken, da testVariable jetzt leer ist.

    22 November 2011
    Mads Kristiansen